KOTKA-JÄRJESTELMÄ
Ismo Horppu
Markku Mielityinen
Markku Vire
Hannu Pekkanen
Jussi Kuittinen
Matti Lupari
Minna Hillebrand
Miika Nurminen
Sampsa Lintunen
Tietokantaraportti 30.8.2003
Jyväskylän yliopisto
Tietotekniikan laitos Kotka-järjestelmän tietokannan tietoja
Tekijät: Ismo Horppu (ishorppu@st.jyu.fi)
Markku Mielityinen (mmmm@st.jyu.fi)
Markku Vire (mavire@st.jyu.fi)
Hannu Pekkanen (krimu@st.jyu.fi)
Jussi Kuittinen (jmkuitti@st.jyu.fi)
Matti Lupari ( matlupa@st.jyu.fi)
Minna Hillebrand (mmhilleb@st.jyu.fi)
Miika Nurminen (minurmin@cc.jyu.fi)
Sampsa Lintunen (sampsa@st.jyu.fi)
Työn nimi: KOTKA-järjestelmän tietokantaraportti
Työ: Raportti KOTKA-järjestelmän tietokannan rakenteesta.
Tiivistelmä: KOTKA-projektiryhmä aloitti syksyn 2000 aikana seuraajan kehittämisen Jyväskylän yliopistossa käytössä olevalle Kurki-nimiselle kurssikirjanpitojärjestelmälle. Tätä kehitystyötä jatkoivat Korppi- ja Halko-projektiryhmät keväällä 2001, Kolibri-projektiryhmä syksyllä 2001, Koppelo-projektiryhmä keväällä 2002, Kiuru-projektiryhmä syksyllä 2002 ja Kottarainen-projektiryhmä keväällä 2003. KOTKA-järjestelmän tietokantaraportti sisältää tietokannan taulujen kuvaukset ER-kaavioineen. Dokumentti on suunnattu erityisesti järjestelmän kehitystyötä jatkaville projektiryhmille.
Avainsanat: Tietokanta, ER-kaavio, PostgreSQL, KOTKA-järjestelmä, Halko-järjestelmä, Korppi-sovellus, Kolibri-sovellus, Koppelo-sovellus, Kiuru-sovellus.
Versionhallinta
Sisällys
Syksyn 2000 Kotka-projektiryhmä aloitti seuraajan kehittämisen Jyväskylän yliopistossa käytössä olevalle Kurki-nimiselle kurssikirjanpitojärjestelmälle. Työn laajuudesta johtuen syksyn 2000 projektiryhmän vastuualueeksi muodostui lähinnä uuden järjestelmän tarpeiden määrittely haastatteluiden avulla, vastaavan tietokantarakenteen hahmottelu ja prototyyppimodulin kehittäminen.
Suuresta työmäärästä johtuen Kotka-projektissa rajoituttiin muutamaan keskeiseen moduuliin ER-kaavioiden teossa (katso selvitys moduuleista Kotka-projektisuunnitelman luvusta 5), joita olivat henkilöstön hallinta, kurssikirjanpito ja opinnäytteet. Koska projektiorganisaatioon kuuluvilla henkilöillä ei ollut riittävästi tietoa muihin moduuleihin tarvittavista ominaisuuksista ja toiminnoista, tyydyttiin niiden taulurakenteista tekemään vain ylimalkaisia hahmotelmia.
Keväällä 2001 Korppi-projektiryhmä jatkoi tätä kehitystyötä toteuttaen kurssikirjanpitojärjestelmän. Kolibri-projektityöryhmä kehitti järjestelmään kalenteri- ja ajanvarausosiota syksyllä 2001. Koppelo-projektiryhmä muokkasi Kotka-projektin suunnitteleman opinnäytteiden hallintaosan toteuttaen opinnäytteiden hallintasovelluksen. Kiuru-projektiryhmä toteutti varaussovelluksen ja suunnitteli resurssien varaukseen, suunnitteluun ja jakoon liittyvää osiota. Kottarainen-projekti ryhmä toteutti kyselyiden hallintasovelluksen ja suunnitteli tätä varten oman osion tietokantaan.
Jokainen Kotka-järjestelmää kehittänyt projekti on päivittänyt tekemänsä muutokset tietokantaraporttiin. Tästä huolimatta raportti ei täysin vastaa tietokannan todellista tilannetta, koska järjestelmän jatkokehityksen yhteydessä toteutettuja muutoksia ei ole kirjattu raporttiin. Uusia muutoksia tehtäessä tulevien projektien on varmistettava tietokannan tilanne Kotka-järjestelmän ylläpidolta tai suoraan PostgreSQL-tietokantaohjelmiston apuohjelmia käyttäen.
Luvussa 2 esitellään organisaatioiden tietojen ja suhteiden tallentamiseen tarvittavat taulut. Ne eivät kuulu suoraan mihinkään moduuliin, vaan kyseisiä osioita tarvitaan lähes kaikissa moduuleissa. Luku 3 esittelee osittaisen henkilöstöhallintamoduulin. Luku 4 keskittyy kurssikirjanpidon taulurakenteen kuvaamiseen. Luku 5 sisältää Koppelo-projektin muokkaaman opinnäyteosuuden. Luku 6 esittelee maksujen ja palkkojen hallinnan. Luku 7 käsittää Kolibri-projektin toteuttamat lisäykset ja muutokset järjestelmän tietokantaan. Luku 8 käsittää Kiuru-projektin tekemät lisäykset varaussovellusta ja resurssien jakoa varten. Luku 9 käsittää Kottarainen-projektin tekemät lisäykset kyselysovellusta varten. Luku 10 esittelee muita järjestelmän tarvitsemia tauluja. Luvussa 11 kerrotaan lyhyesti niistä moduuleista, joiden suunnittelu on oleellisilta osiltaan kesken tai lähes kokonaan aloittamatta. Luvussa 12 selvitetään järjstelmän käyttämät PostgreSQL-tietokantaohjelmiston erityispiirteet.
Jokaisessa luvussa on ER-kaavion lisäksi taulukohtainen kuvaus kenttien käyttötarkoituksista, relaatioiden merkityksestä sekä lyhyt esimerkki tallennettavan datan muodosta. Käytetyn PostgreSQL-tietokantaohjelmiston asettamien rajoitusten vuoksi taulujen nimet piti saada mahtumaan 31 merkin tilaan, joka kannattaa huomioida käännös- ja suojaustaulujen nimeämisen osalta.
Kantaa suunniteltaessa päätettiin, ettei mitään dataa todellisuudessa poisteta kannasta, vaan poistettavaksi tarkoitettu data vaan merkitään poistetuksi. Tätä tarkoitusta varten jokaisesta taulukosta löytyy Deleted-kenttä. Lisäksi kaikki järjestelmän tarjoamat vakiotekstit on tallennettu kaikilla järjestelmän tuntemilla kielillä. Sen sijaan käyttäjän syöttämät tiedot tallennetaan yleensä vain yhdellä kielellä. Poikkeuksena on lähinnä kurssikuvausten tallentaminen.
Organisaatioiden taulut eivät liity suoraan mihinkään toteutettavaan moduuliin, vaan kyseessä olevaa taulurakennetta hyödynnetään lähes kaikissa moduuleissa. Organisaatioiden taulut kuvaavat yliopistojen tiedekuntien ja laitostosten hierarkisen rakenteen. Niiden tärkeimpänä tehtävänä on kuitenkin kertoa, minkälaisia oikeuksia kullakin järjestelmän tuntemalla henkilöllä on missäkin organisaatioympäristössä. Henkilön oikeudet periytyvät ylemmistä organisaatioista kaikkiin kyseisen organisaation alapuolella oleviin yksiköihin, joten esimerkiksi ylimmän organisaatiotason ylläpitäjä on ylläpitäjä kaikissa muissakin organisaatioissa.
Kuvassa 1 on esitetty organisaatioihin liittyvät taulut ER-kaavion muodossa. Tauluja käsitellään tarkemmin seuraavissa alaluvuissa. Tauluja Language ja Person ei ole käsitelty, sillä ne on esitelty henkilötietojen hallintaa käsittelevässä luvussa 3.
Organisaatioiden taulurakenteeseen liittyy läheisesti Person-taulun (luku 3.2) OrganisationID-kenttä, joka kertoo henkilön kotiorganisaation. Henkilökunnan tapauksessa kotiorganisaationa voidaan pitää palkan maksavana tahoa, kun vastaavasti opiskelijan kotiorganisaatio on pääainetta vastaava laitos. Huomattavaa on, että kotiorganisaatio liittää henkilön täsmälleen yhteen organisaatioon. Laajemmin käyttöoikeuksia hallitaan AccessRight-taulun (luku 2.13) avulla.
Kotiorganisaation käsite on kuitenkin välttämätön esimerkiksi henkilöstönhallintamoduulin kannalta, sillä siellä kotiorganisaatiota käytetään määrittelemään, kenellä on oikeus muuttaa henkilön tietoja. Henkilötietoja editoivalla henkilöllä pitää olla vähintään sihteerin oikeudet editoitavan henkilön kotiorganisaatiossa.
Taulussa AccessRightLevel määritellään kaikki koko organisaatiorakenteessa tunnetut käyttäjäryhmät, joita ovat esimerkiksi opiskelijat, henkilökunta ja ylläpitäjät. Taulun rakenne on seuraavan kaltainen:
Deleted kertoo, onko oikeustaso poistettu.
AccessRightLevelID on taulun avainkenttä, joka määrittelee käytetyt oikeusluokat.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki AccessRightLevel-taulun sisältämästä datasta on taulukossa 1.
Deleted
|
AccessRightLevelID
|
False
|
1
|
True
|
2
|
Taulukko 1: Esimerkki AccessRightLevel-taulun käytöstä.
Taulu AccessRightLevelTranslation määrittelee AccessRightLevel-taulun (luku 2.2) määrittelemien käyttäjäryhmien nimet selkokielisinä kaikilla järjestelmän tuntemilla kielillä. Taulun rakenne on seuraavan kaltainen.
Deleted kertoo, onko käännös merkitty poistetuksi.
AccessRightLevelID määrittelee mihin taulussa AccessRightLevel määriteltyyn oikeustasoon käännös liittyy.
LanguageID kertoo käytetyn kielen.
Name sisältää varsinaisen käännöstekstin.
Tauluun liittyvät relaatiot ovat seuraavat:
AccessRightLevelTranslation-taulun käyttöä on kuvattu taulukon 2 esimerkissä.
Deleted
|
AccessRightLevelID
|
LanguageID
|
Name
|
False
|
1
|
1
|
Addministrator
|
False
|
1
|
2
|
Ylläpitäjä
|
Taulukko 2: Esimerkki AccessRightLevelTranslation-taulun käytöstä.
Organisaatioille tulee voida asettaa dynaamisesti kaikenlaista lisätietoa, kuten vaikka WWW-osoitteita. Taulukossa OrgParameterType määritellään kaikki lisätietotyypit, jotta lisätietojen luokittelu esittämistä varten onnistuu helposti. Itse taulu on määritelty seuraavasti:
Deleted kertoo, onko tyyppi poistettu.
OrgParameterTypeID on taulukon avainkenttä.
Name on parametrin nimi.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki taulun käytöstä on taulukossa 3.
Deleted
|
OrgParameterTypeID
|
Name
|
False
|
1
|
Vastuualue
|
Taulukko 3: Esimerkki OrgParameterType-taulun käytöstä.
Taulu määrittelee OrgParameterTypeID-arvoja vastaavat tekstit kaikilla kielillä. Taulun rakenne on seuraava:
Deleted kertoo, onko käännös poistettu.
OrgParameterTypeID määrittelee, mitä OrgParameterType-taulussa (luku 2.4) määriteltyä tyyppiä ollaan kääntämässä.
LanguageID kertoo, minkä kielisestä käännöksestä on kyse.
Name sisältää varsinaisen käännöksen.
Tauluun liittyvät relaatiot ovat seuraavat:
OrgParameterTypeTranslation-taulun käyttöä esitellään taulukossa 4.
Deleted
|
OrgParameterTypeID
|
LanguageID
|
Name
|
False
|
1
|
1
|
WWW-site
|
False
|
1
|
2
|
WWW-osoite
|
Taulukko 4: Esimerkki OrgParameterTypeTranslation-taulun käytöstä.
Taulu määrittelee, minkä käyttöoikeusryhmän henkilöt saavat editoida minkäkin tyyppisiä organisaatioparametreja. Taulun rakenne on seuraava:
Deleted kertoo, onko oikeus poistettu.
AccessRightLevelID kertoo, mitä taulussa AccessRightLevel (luku 2.2) määritteltyä käyttöoikeusluokkaa oikeus koskee.
OrgParameterTypeID kertoo OrgParameterType-taulussa (luku 2.4) määritellyn parametrityypin, jota oikeus koskee.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki OrgParameterTypeProt-taulun käytöstä on taulukossa 5. Esimerkissä käyttäjäryhmien yksi ja kaksi edustajat saavat muokata parametrityypin yksi arvoja.
Deleted
|
AccessRightLevelID
|
OrgParameterTypeID
|
False
|
1
|
1
|
False
|
2
|
1
|
Taulukko 5: Esimerkki OrgParameterTypeProt-taulun käytöstä.
Taulussa määritellään, minkä tyyppisiä organisaatioita organisaatiorakenteeseen kuuluu. Tyypin perusteella voidaan siten tulostaa esimerkiksi lista tiedekunnan laitoksista. Toisaalta on epäselvää, että tarvitaanko tyypin ilmoittamiseen näin monimutkaista rakennetta, vai riittäisikö pelkkä numerokenttä Organisation-taulussa (luku 2.9). Taulun nykyinen rakenne näyttää seuraavalta:
Deleted kertoo, onko organisaatiotyyppi poistettu.
OrganisationTypeID on taulun avainkenttä.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki OrganisationType-taulun käytöstä on taulukossa 6.
Deleted
|
OrganisationTypeID
|
False
|
1
|
False
|
2
|
Taulukko 6: Esimerkki OrganisationType-taulun sisällöstä.
Taulussa määritellään organisaatiotyypeille tekstimuotoiset vastineet eri kielillä. Taulun rakenne on seuraavan kaltainen:
Deleted kertoo, onko käännös poistettu.
OrganisationTypeID kertoo käännettävän organisaatiotyypin.
LanguageID määrittelee kyseessä olevan käännöksen kielen.
Name sisältää varsinaisen käännöksen.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki OrganisationTypeTranslation-taulun sisällöstä on taulukossa 7.
Deleted
|
OrganisationTypeID
|
LanguageID
|
Name
|
False
|
1
|
1
|
University
|
False
|
1
|
2
|
Yliopisto
|
Taulukko 7: Esimerkki OrganisationTypeTranslation-taulun sisällöstä.
Taulu sisältää kaikki järjestelmää käyttävät organisaatiot. Käytännössä tarkoitus on tallentaa tiedot yliopiston tiedekunnista ja laitoksista. Organisaation yhteystiedot lisättiin tähän taulukkoon, jotta jokaisen organisaatioon kuuluvan henkilön kohdalla ei tarvitsisi toistaa samoja tietoja. Taulun rakenne on seuraava:
Deleted kertoo, onko organisaatio poistettu.
OrganisationID on taulun avainkenttä.
OrganisationTypeID määrittelee taulun OrganisationType avulla organisaatiotyypin.
StyleSheet määrittelee organisaation tyylitiedoston. Tätä ei vielä huomioida käyttöliittymässä.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki Organisation-taulun sisällöstä on taulukossa 8.
Deleted
|
OrganisationID
|
OrganisationTypeID
|
False
|
1
|
1
|
Taulukko 8: Esimerkki Organisation-taulukon sisällöstä.
Taulu määrittelee Organisation-taulussa (luku 2.9) esiteltyjen organisaatioiden nimet kaikilla järjestelmän käyttämillä kielillä. Taulun rakenne on seuraava:
Deleted kertoo, onko käännös poistettu.
LanguageID kertoo kielen, jolle käännös tehdään.
Name sisältää varsinaisen käännöksen.
Abbreviation sisältää käännöksen lyhenteen.
Esimerkki taulun sisällöstä on taulukossa 9.
Deleted
|
OrganisationID
|
LanguageID
|
Abbreviation
|
Name
|
False
|
1
|
1
|
JYU
|
University
of Jyväskylä
|
False
|
1
|
2
|
JYU
|
Jyväskylän
yliopisto
|
Taulukko 9: Esimerkki OrganisationTranslation-taulun sisällöstä.
Tauluun OrganisationParameter on tallennettu organisaation dynaamiset parametrit, joiden tyypi on määritelty OrgParameterType-taulukossa (luku 2.4). Yleisen suunnittelulinjan mukaisesti käyttäjän syöttämiä eri parametrien arvoja ei tallenneta usealla kielellä. Taulukon rakenne on seuraava:
Deleted kertoo, onko parametri poistettu.
OrganisationID määrittelee organisaation, jonka parametrista on kyse.
OrgParameterTypeID kertoo parametrin tyypin.
Value sisältää parametrin arvon.
Relaatiot
Taulukossa 10 olevassa esimerkissä luodaan aiemmin luodulle organisaatiolle 1 tyyppiä 1 oleva parametri.
Deleted
|
OrganisationID
|
OrgParameterTypeID
|
Value
|
False
|
1
|
1
|
www.jyu.fi
|
Taulukko 10: Esimerkki OrganisationParameter-taulun käytöstä.
Tämän taulun avulla kuvataan organisaatioiden keskinäiset suhteet. Jokaisen organisaation kohdalta luetellaan kaikki sen alaorganisaatiot. Myös organisaatiota itse pidetään sen itsensä alaorganisaationa. Tällaisella rakenteella pystytään luomaan kaivattu käyttöoikeuksien periytyminen organisaatiorakenteessa ylhäältä alaspäin. Taulun rakenne on seuraava:
Deleted kertoo, onko organisaatiosuhde poistettu.
OrganisationID kertoo organisaation, jonka tiedoista on kyse.
SubOrganisationID määrittelee alaorganisaation OrganisationID:n määrittelemälle organisaatiolle.
Tauluun liittyvät relaatiot ovat seuraavat:
Taulukossa 11 olevassa esimerkissä määritellään kahden organisaation suhde, jossa organisaatio 2 sijoitetaan organisaation 1 alle.
Deleted
|
OrganisationID
|
SubOrganisationID
|
False
|
1
|
1
|
False
|
1
|
2
|
False
|
2
|
2
|
Taulukko 11: Esimerkki OrgRelationship-taulun sisällöstä.
Tämä taulu määrittelee, minkälaisia oikeuksia kullakin henkilöllä on missäkin organisaatiossa. OrgRelationship-taulun (luku 2.12) avulla saadaan selville kaikki kyseisen organisaation alapuolella olevat organisaatiot, joissa oikeudet myös pätevät. Taulun rakenne on seuraavan kaltainen:
Deleted kertoo, onko oikeus poistettu.
PersonID määrittelee henkilön, jonka oikeuksista on kyse.
OrganisationID määrittelee organisaation, jossa oikeus on voimassa.
AccessRightLevelID kertoo kyseessä olevan oikeustason.
Tauluun liittyvät relaatiot ovat seuraavat:
Taulukossa 12 olevassa esimerkissä henkilöllä 1 on tason 1 oikeudet organisaatiossa 1 ja henkilöllä 2 tason kaksi oikeudet organisaatiossa 2. Mikäli OrgRelationship-taulu on taulukon 11 kaltainen, on henkilöllä 1 tason 1 oikeudet myös organisaatiossa 2, joka sijaitsi organisaation 1 alapuolella. Henkilöllä 2 taas ei ole mitään oikeuksia organisaatiossa 1.
Deleted
|
PersonID
|
OrganisationID
|
AccessRightLevelID
|
False
|
1
|
1
|
1
|
False
|
2
|
2
|
2
|
Taulukko 12: Esimerkki AccessRight-taulun sisällöstä
Tämä taulu määrittelee lukukauden parametrit. OrgSeasonPeriod-taulun (luku 2.15) avulla saadaan selville kyseisen lukukauden tietoja käyttävät organisaatiot. Taulun rakenne on seuraavan kaltainen:
Deleted kertoo, onko oikeus poistettu.
OrganisationalSeasonID määrittelee organisaation lukukauden, jonka tiedoista on kyse.
PeriodID määrittelee perioidin, johon tiedot vaikuttavat.
StartDate kertoo lukukauden alkamisajankohdan.
EndDate kertoo lukukauden loppumisajankohdan.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki taulun sisällöstä on taulukossa 13.
Deleted
|
OrganisationalSeasonID
|
PeriodID
|
StartDate
|
EndDate
|
False
|
1
|
1
|
01-01-01
|
02-01-01
|
False
|
2
|
2
|
02-01-01
|
03-01-01
|
Taulukko 13: Esimerkki OrganisationalSeason-taulun sisällöstä.
Tämä taulu määrittelee, mitkä organisaatioperiodit liittyvät mihinkin organisaatioon. Taulukon rakenne on seuraavan kaltainen:
Deleted kertoo, onko oikeus poistettu.
OrganisationalSeasonID määrittelee organisaatioseasonin, jonka tiedoista on kyse.
OrganisationID määrittelee organisaation, joka tietoja käyttää.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki taulun sisällöstä on taulukossa 14.
Deleted
|
OrganisationalSeasonID
|
OrganisationID
|
False
|
1
|
1
|
False
|
2
|
2
|
Taulukko 14: Esimerkki OrgSeasonPeriod-taulun sisällöstä.
Taulussa määritellään organisaatioseasontyypeille tekstimuotoiset vastineet eri kielillä. Taulun rakenne on seuraavan kaltainen:
Deleted kertoo, onko käännös poistettu.
OrganisationalSeasonID kertoo käännettävän lukukauden.
LanguageID määrittelee kyseessä olevan käännöksen kielen.
Name sisältää varsinaisen käännöksen.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki OrganisationalSeasonLang-taulun sisällöstä on taulukossa 15.
Deleted
|
OrganisationalSeasonID
|
LanguageID
|
Name
|
False
|
1
|
1
|
Lukukausi
1
|
False
|
1
|
2
|
lukukausi
2
|
Taulukko 15: Esimerkki OrganisationalSeasonLang-taulun sisällöstä.
Taulu sisältää kaikki käytettävissä olevat periodit ja niiden alkamisajat. Taulun rakenne on seuraava:
Deleted kertoo, onko periodi poistettu.
PeriodID on taulun avainkenttä.
StartDate kertoo periodin alkamisajankohdan.
EndDate kertoo periodin loppumisajankohdan.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki Period-taulun sisällöstä on taulukossa 16.
Deleted
|
PeriodID
|
StartDate
|
EndDate
|
False
|
1
|
01-01-01
|
03-01-01
|
Taulukko 16: Esimerkki Period-taulukon sisällöstä.
Taulussa määritellään periodityypeille tekstimuotoiset vastineet eri kielillä. Taulun rakenne on seuraavan kaltainen:
Deleted kertoo, onko käännös poistettu.
PeriodID kertoo käännettävän periodtyypin.
LanguageID määrittelee kyseessä olevan käännöksen kielen.
Name sisältää varsinaisen käännöksen.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki PeriodLang-taulun sisällöstä on taulukossa 17.
Deleted
|
OrganisationalSeasonID
|
LanguageID
|
Name
|
False
|
1
|
1
|
Period
1
|
False
|
1
|
2
|
Periodi
1
|
Taulukko 17: Esimerkki PeriodLang-taulun sisällöstä.
Taulu sisältää tiedon siitä, mitä organisaatiota laskutetaan. Taulun rakenne on seuraava:
Deleted kertoo, onko organisaatio poistettu.
PeriodID määrittelee periodin.
OrganisationID määrittelee organisaatiotyypin.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki BudgetFocus-taulun sisällöstä on taulukossa 18.
Deleted
|
PeriodID
|
OrganisationID
|
False
|
1
|
1
|
Taulukko 18: Esimerkki BudgetFocus-taulukon sisällöstä.
Taulu määrittelee organisaation osoitetiedot. Taulun rakenne on seuraava:
Deleted kertoo, onko oikeus poistettu.
OrganisationID kertoo, mikä organisaatio on kyseessä.
AddressID kertoo Address-taulussa (luku 3.8) määritellyn parametrityypin, jota viittaus koskee.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki OrganisationAddress-taulun käytöstä on taulukossa 19.
Deleted
|
OrganisationID
|
AddressID
|
False
|
1
|
1
|
False
|
2
|
1
|
Taulukko 19: Esimerkki OrganisationAddress-taulun käytöstä.
KOTKA-tietokannan Person-osio muodostaa tietokannan ydinrakenteen, jonka palveluita muut modulit hyödyntävät. Kaikki käyttäjiä koskevat henkilökohtaiset tiedot kirjataan tänne.
Kuvassa 2 on esitetty henkilöihin ja henkilöstön hallintoon liittyvät taulut ER-kaavion muodossa. Tauluja käsitellään tarkemmin seuraavissa alaluvuissa.
Henkilöiden saavuttamat oppiarvot kirjataan Degree-, DegreeType-, DegreeFrom- ja Grade-taulujen avulla (luvut 3.3-3.5 ja 4.14). Oppiarvoista voitaisiin antaa esimerkkinä maisterin ja tohtorin tutkinnot. Tittelit ja työtehtävät kirjataan Prefix- ja PrefixType-tauluihin. Tällaisia ovat esimerkiksi arkkiatrin titteli ja professorin virka. Henkilöiden osoitteet kirjataan Address-, PostalInfo- ja AddressType-tauluihin (luvut 3.8 ja 3.9). Osoitteissa erotellaan ainakin työ-, koti- ja mökkiosoite. Kaikki muut henkilön henkilökohtaiset parametrit kirjataan tauluihin PersonParameter ja PersonParameterType (luvut 3.10 ja 3.11). Näitä ovat esimerkiksi puhelinnumerot, sähköpostiosoitteet, aloitusvuosi ja opintolinja.
Kaikki tietokantaan tallennetut tiedot monikielistetään yhdistämällä ne many-to-many -suhteella Language-tauluun (luku 3.13). Aktiivisena kielenä on kullekin käyttäjälle hänelle Person-taulussa (luku 3.2) määritelty kieli.
Henkilöistä kirjattujen tietojen käsittelyyn tarvittavat käyttöoikeudet määritellään yhdistämällä ne many-to-many -suhteella AccessRightLevel-tauluun (luku 2.2). Jokaisella henkilöllä tulee olla minimimääräoikeuksia, jolloin hän voi ainakin lukea itseään koskevia tietoja.
Henkilöstön hallinnan osalta kaikkia tarvittavia tauluja ei ole vielä suunniteltu. Esimerkiksi rahankäytön ja projektienhallinnan tarvitsemat taulurakenteet puuttuvat. Näistä kerrotaan lisää hallinnollisia asioita käsittelevässä luvussa 10.1.
Person-tauluun tallennetaan tiedot kaikista järjestelmän käyttäjistä. Taulu sisältää tärkeimmät käyttäjän parametrit. Lisäksi taulussa on mukana kenttiä erilaisia käyttöliittymän toimintaan liittyviä parametreja varten. Taulun kentät ovat seuraavat:
Deleted kertoo, onko henkilö poistettu.
PersonID on taulun avainkenttä.
CallName on henkilön kutsunimi.
FirstNames sisältää henkilön etunimet.
LastName on henkilön sukunimi.
LanguageID on henkilön käyttämän käyttöliittymän kieli.
HomeOrganisationID on henkilön kotiorganisaatio.
FundingOrganisationID on henkilön rahoitusorganisaatio.
Account on henkilön sisäänkirjautumisessa antama nimi.
Password on henkilön sisäänkirjautumisessa antama salasana.
RegisteredOn on henkilön järjestelmäänlisäyksen ajankohta.
LastLogin on henkilön viimeisen järjestelmään kirjautumisen ajankohta.
LastLogout on henkilön viimeisen järjestelmästä kirjautumisen ajankohta.
SessionTimeout on henkilön määrittämä käyttöliittymän automaattisen järjestelmästä uloskirjautumisen aikaväli.
AutoLogout määrittelee, varmistetaanko henkilön järjestelmästä uloskirjautuminen.
SocSecBirth on henkilön sosiaaliturvatunnuksen alkuosa.
SocSecCentury on henkilön sosiaaliturvatunnuksen keskiosa.
SocSecEnd on henkilön sosiaaliturvatunnuksen loppuosa.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki Person-taulun käytöstä on taulukossa 20.
Deleted
|
PersonID
|
CallName
|
FirstNames
|
LastName
|
LanguageID
|
False
|
1
|
Matti
|
Matti
|
Meikäläinen
|
1
|
False
|
2
|
Maija
|
Maija
|
Meikäläinen
|
2
|
OrganisationID
|
Account
|
Password
|
RegisteredOn
|
LastLogin
|
LastLogout
|
1
|
matti
|
ittam
|
00-11-19
|
00-12-19
|
00-12-19
|
1
|
maija
|
ajiam
|
00-11-24
|
00-12-24
|
00-12-24
|
SessionTimeout
|
AutoLogout
|
SocSecBirth
|
SocSecCentury
|
SocSecEnd
|
1800
|
False
|
121267
|
-
|
789J
|
900
|
True
|
211245
|
+
|
7897
|
Taulukko 20: Esimerkki Person-taulun sisällöstä.
Taulussa on lueteltuna kaikki järjestelmään syötetyt oppiarvot. Oppiarvoista tallennetaan saajan lisäksi tyyppi, arvosana sekä myöntänyt organisaatio, henkilö ja myöntämispäivä. Toiminta on läheisessä sidoksessa tauluihin DegreeType (luku 3.4) ja DegreeFrom (luku 3.5). Taulun kentät ovat seuraavat:
Deleted kertoo, onko oppiarvo poistettu.
DegreeID on taulun avainkenttä.
PersonID kertoo oppiarvon omistajan.
DegreeTypeID kertoo oppiarvon tyypin.
GradeID kertoo arvosanan.
DegreeFromID kertoo oppiarvon myöntäjäorganisaation.
GrantedOn kertoo myöntämisajan.
GrantedBy kertoo myöntäjän.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki Degree-taulun käytöstä on taulukossa 21.
Deleted
|
DegreeID
|
PersonID
|
DegreeTypeID
|
False
|
1
|
1
|
1
|
False
|
1
|
2
|
2
|
GradeID
|
DegreeFromID
|
GrantedOn
|
GrantedBy
|
1
|
1
|
00-11-30
|
JYU
|
1
|
2
|
00-11-30
|
JYU
|
Taulukko 21: Esimerkki Degree-taulun sisällöstä.
Taulussa kuvataan kaikki järjestelmän tuntemat oppiarvotyypit. Toiminta on läheisessä sidoksessa tauluihin Degree (luku 3.3) ja DegreeFrom (luku 3.5). Taulun rakenne on seuraava:
Deleted kertoo, onko oppiarvotyyppi poistettu.
DegreeTypeID on taulun avainkenttä.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki DegreeType-taulun käytöstä on taulukossa 22.
Deleted
|
DegreeTypeID
|
False
|
1
|
False
|
2
|
Taulukko 22: Esimerkki DegreeType-taulun sisällöstä.
Tässä taulussa määritellään kaikki ne järjestelmän tuntemat tahot, jotka voivat myöntää oppiarvoja. Taulun kentät ovat seuraavat:
Deleted kertoo, onko organisaatiotyyppi poistettu.
DegreeFromID on taulun avainkenttä.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki DegreeFrom-taulun datasta on taulukossa 23.
Deleted
|
DegreeFromID
|
False
|
1
|
False
|
2
|
Taulukko 23: Esimerkki DegreeFrom-taulun sisällöstä.
Tauluun tallennetaan kaikki organisaation tittelit ja työtehtävät sekä näihin liittyvät alkamis- ja loppumispäivät. Toiminta on läheisessä sidoksessa tauluun PrefixType (luku 3.7), jossa määritellään käytettävissä olevat tittelit ja työtehtävät. Taulun rakenne on seuraava:
Deleted kertoo, onko titteli tai tehtävä poistettu.
PrefixID on taulun avainkenttä.
StartDate on tittelin tai tehtävän anto- tai alkamispäivä.
EndDate on tittelin tai tehtävän päättymispäivä.
PersonID on tittelin tai tehtävän omistaja.
PrefixTypeID on tittelin tai tehtävän tyyppi.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki Prefix-taulun sisällöstä on taulukossa 24.
Deleted
|
PrefixID
|
StartDate
|
EndDate
|
PersonID
|
PrefixTypeID
|
False
|
1
|
01-01-01
|
02-01-01
|
3
|
1
|
False
|
2
|
01-01-01
|
02-01-01
|
4
|
2
|
Taulukko 24: Esimerkki Prefix-taulun sisällöstä.
Tähän tauluun tallennetaan järjestelmän tunnistamat tittelit ja työtehtävät. Toiminta on läheisessä sidoksessa tauluun Prefix (luku 3.6), johon varsinaiset myönnetyt tittelit ja työtehtävät kirjataan. Taulun rakenne on seuraava:
Deleted kertoo, onko titteli- tai tehtävätyyppi poistettu.
PerfixTypeID on taulun avainkenttä.
Rank on tittelin tai tehtävän arvo.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki PrefixType-taulun sisällöstä on taulukossa 25.
Deleted
|
PerfixTypeID
|
Rank
|
False
|
1
|
1
|
False
|
2
|
2
|
Taulukko 25: Esimerkki PrefixType-taulun sisällöstä.
Tauluun tallennetaan käyttäjän katuosoite. Toiminta on läheisessä sidoksessa tauluihin PostalInfo (luku 3.9) ja AddressType (luku 3.10), jossa määritellään käytettävissä olevat osoitetyypit. Taulun rakenne on seuraava:
Deleted kertoo, onko osoite poistettu.
AddressID on taulukon avainkenttä.
AddressTypeID on osoitteen tyyppi.
Street on katuosoite.
PostalInfoID on postitustietojen tyyppi.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki Address-taulun käytöstä on taulukossa 26.
Deleted
|
AddressID
|
AddressTypeID
|
Street
|
PostalInfoID
|
False
|
1
|
3
|
Ankkakatu
2
|
1
|
False
|
2
|
4
|
Kotkatie
5
|
2
|
Taulukko 26: Esimerkki Address-taulun sisällöstä.
Tauluun tallennetaan käyttäjän osoitteita. Taulun rakenne on seuraava:
Deleted kertoo, onko osoite poistettu.
PostalInfoID on taulukon avainkenttä.
ZipCode on osoitteen tyyppi.
Country on katuosoite.
Town on postitustietojen tyyppi.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki PostalInfo-taulun käytöstä on taulukossa 27.
Deleted
|
PostalInfoID
|
ZipCode
|
Country
|
Town
|
False
|
1
|
666
|
Ankkakatu
2
|
Ankkalinna
|
False
|
2
|
6969
|
Kotkatie
5
|
Hanhivaara
|
Taulukko 27: Esimerkki PostalInfo-taulun sisällöstä.
Tässä taulussa kuvataan kaikki järjestelmän tunnistamat osoitetyypit. Toiminta on läheisessä sidoksessa tauluun Address (luku 3.8), johon varsinaiset osoitteet kirjataan. Taulun kentät ovat seuraavat:
Deleted kertoo, onko osoitetyyppi poistettu.
AddressTypeID on taulun avainkenttä.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki AddressType-taulun käytöstä on taulukossa 28.
Deleted
|
AddressTypeID
|
False
|
1
|
False
|
2
|
Taulukko 28: Esimerkki AddressType-taulun sisällöstä.
Järjestelmän laajennettavuuden kannalta on tärkeää, että uusien parametrityyppien lisäys on helppoa ja henkilöiden parametrimäärät voivat vaihdella. Tämän ongelman ratkaisee dynaamisesti toimiva PersonParameter-taulu. Toiminta on läheisessä sidoksessa tauluun PersonParameterType (luku 3.12), jossa määritellään käytettävissä olevat parametrityypit. Taulun kentät ovat seuraavat:
Deleted kertoo, onko parametri poistettu.
PersonParameterID on taulun avainkenttä.
PersonID on parametrin omistaja.
PersonParameterTypeID on parametrin tyyppi.
PersonParameterValue on parametrin arvo.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki PersonParameter-taulun käytöstä on taulukossa 29.
Deleted
|
PersonParameterID
|
PersonID
|
PersonParameterTypeID
|
False
|
1
|
3
|
1
|
False
|
2
|
4
|
2
|
PersonParameterValue
|
Mies
|
Nainen
|
Taulukko 29: Esimerkki PersonParameter-taulun sisällöstä.
Tässä taulussa esitellään kaikki järjestelmän hyväksymät parametrityypit. Toiminta on läheisessä sidoksessa tauluun PersonParameter (luku 3.11), johon varsinaiset parametrit kirjataan. Taulun rakenne on seuraava:
Deleted kertoo, onko parametrityyppi poistettu.
PersonParameterTypeID on taulun avainkenttä.
BelongsInGroup ryhmittelee parametrit.
Name on parametrin nimi
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki PersonParameterType-taulun käytöstä on taulukossa 30.
Deleted
|
PersonParameterTypeID
|
Name
|
False
|
1
|
Puhelin
|
False
|
2
|
WWW-osoite
|
Taulukko 30: Esimerkki PersonParameterType-taulukon sisällöstä.
Tämä taulu on koko KOTKA-järjestelmän käytössä ja sillä esitellään järjestelmän tukemat kielet. Taulun kentät ovat seuraavat:
Deleted kertoo, onko kieli poistettu.
LanguageID on taulun avainkenttä.
Name on kielen nimi.
Tauluun liittyy relaatio kaikista järjestelmän tauluista, joiden nimessä on pääte lang, language tai translation. Relaatioita käytetään järjestelmän monikielistämiseen.
Esimerkki Language-taulun käytöstä on taulukossa 31.
Deleted
|
LanguageID
|
Name
|
False
|
1
|
English
|
False
|
2
|
Finnish
|
Taulukko 31: Esimerkki Language-taulun sisällöstä.
Tällä taululla monikielistetään oppiarvot. Taulun kentät ovat seuraavat:
Deleted kertoo, onko oppiarvon tyypin kieli poistettu.
DegreeTypeID kertoo käännettävän oppiarvon.
LanguageID on käytetty kieli.
Name on oppiarvon nimi.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki DegreeTypeLanguage-taulun käytöstä on taulukossa 32.
Deleted
|
DegreeTypeID
|
LanguageID
|
Name
|
False
|
1
|
1
|
Bachelor's
Degree
|
False
|
1
|
2
|
Kandidaatin
tutkinto
|
Taulukko 32: Esimerkki DegreeTypeLanguage-taulun sisällöstä.
Tällä taululla monikielistetään oppiarvojen lähteet. Taulun rakenne on seuraava:
Deleted kertoo, onko oppiarvon tyypin kieli poistettu.
DegreeFromID on kyseinen oppiarvotyyppi.
LanguageID on käytetty kieli.
Name on oppiarvon nimi.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki TranslatedDegreeFrom-taulun käytöstä on taulukossa 33.
Deleted
|
DegreeTypeID
|
LanguageID
|
Name
|
False
|
1
|
1
|
Bachelor's
Degree
|
False
|
1
|
2
|
Kandidaatin
tutkinto
|
Taulukko 33: Esimerkki TranslatedDegreeFrom-taulun sisällöstä.
Tällä taululla monikielistetään titteli- ja työtehtävätyypit. Taulun kentät ovat seuraavat:
Deleted kertoo, onko tittelin tai tehtävän tyypin kieli poistettu.
PrefixTypeID kertoo käännettävän tittelin tai työtehtävän.
LanguageID on käytetty kieli.
Name on tittelin tai tehtävän nimi.
Abbreviation on tittelin tai tehtävän nimen lyhenne.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki PrefixTypeLanguage-taulun käytöstä on taulukossa 34.
Deleted
|
PrefixTypeID
|
LanguageID
|
Name
|
Abbreviation
|
False
|
1
|
1
|
Doctor
|
Ph.D
|
False
|
1
|
2
|
Tohtori
|
Ph.D
|
Taulukko 34: Esimerkki PrefixTypeLanguage -taulun sisällöstä.
Tällä taululla monikielistetään osoitetyypit. Taulun kentät ovat seuraavat:
Deleted kertoo, onko osoitetyypin kieli poistettu.
AddressTypeID kertoo käännettävän osoitetyypin.
LanguageID on käytetty kieli.
Name on osoitetyypin nimi.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki AddressTypeLanguage-taulun käytöstä on taulukossa 35.
Deleted
|
PrefixTypeID
|
LanguageID
|
Name
|
False
|
1
|
1
|
Home
Address
|
False
|
1
|
2
|
Kotiosoite
|
Taulukko 35: Esimerkki AddressTypeLanguage-taulun sisällöstä.
Tällä taululla monikielistetään henkilökohtaiset parametrityypit. Taulun rakenne on seuraava:
Deleted kertoo, onko parametrityypin kieli poistettu.
PersonParameterTypeID kertoo käännettävän parametrityypin.
LanguageID on käytetty kieli.
Name on parametrityypin nimi.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki PersonParameterTypeLanguage-taulun käytöstä on taulukossa 36.
Deleted
|
PrefixTypeID
|
LanguageID
|
Name
|
False
|
1
|
1
|
Gender
|
False
|
1
|
2
|
Sukupuoli
|
Taulukko 36: Esimerkki PersonParameterTypeLanguage-taulun sisällöstä.
Tällä taululla kontrolloidaan kaikkien henkilöiden oikeuksia muuttaa omia ja muiden oppiarvoja. Taulun rakenne on seuraava:
Deleted kertoo, onko tietyn oppiarvotyypin käyttöoikeus poistettu.
AccessType on käytön oikeustyyppi.
DegreeTypeID on kohteena olevan oppiarvon tyyppi.
AccessRightLevelID on kohteeseen oleva oikeus.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki DegreeTypeProt-taulun käytöstä on taulukossa 37.
Deleted
|
AccessType
|
DegreeTypeID
|
AccessRightLevelID
|
False
|
1
|
1
|
1
|
False
|
2
|
1
|
2
|
Taulukko 37: Esimerkki DegreeTypeProt-taulun sisällöstä.
Tällä taululla kontrolloidaan kaikkien henkilöiden oikeuksia muuttaa omia ja muiden titteleitä ja työtehtäviä. Taulun rakenne on seuraava:
Deleted kertoo, onko tietyn tittelin tai tehtävän käyttöoikeus poistettu.
AccessType on käytön oikeustyyppi.
PrefixTypeID on kohteena oleva tittelin tai tehtävän tyyppi.
AccessRightLevelID on kohteeseen oleva oikeus.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki PrefixTypeProt-taulun käytöstä on taulukossa 38.
Deleted
|
AccessType
|
PrefixTypeID
|
AccessRightLevelID
|
False
|
1
|
1
|
1
|
False
|
2
|
1
|
2
|
Taulukko 38: Esimerkki PrefixTypeProt-taulun sisällöstä.
Tällä taululla kontrolloidaan kaikkien henkilöiden oikeuksia muuttaa omia ja muiden osoitteita. Taulun kentät ovat seuraavat:
Deleted kertoo, onko tietyn osoitetyypin käyttöoikeus poistettu.
AccessType on käytön oikeustyyppi.
AddressTypeID on kohteena olevan osoitteen tyyppi.
AccessRightLevelID on kohteeseen oleva oikeus.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki AddressTypeProt-taulun käytöstä on taulukossa 39.
Deleted
|
AccessType
|
AddressTypeID
|
AccessRightLevelID
|
False
|
1
|
1
|
1
|
False
|
2
|
1
|
2
|
Taulukko 39: Esimerkki AddressTypeProt-taulun sisällöstä.
Tällä taululla kontrolloidaan kaikkien henkilöiden oikeuksia muuttaa omia ja muiden henkilökohtaisia parametreja. Taulun rakenne on seuraava:
Deleted kertoo, onko tietyn parametrityypin käyttöoikeus poistettu.
AccessType on käytön oikeustyyppi.
PersonParameterTypeID on kohteena olevan parametrin tyyppi.
AccessRightLevelID on kohteeseen oleva oikeus.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki PersonParameterTypeProt-taulun käytöstä on taulukossa 40.
Deleted
|
AccessType
|
PersonParameterTypeID
|
AccessRightLevelID
|
False
|
1
|
1
|
1
|
False
|
2
|
1
|
2
|
Taulukko 40: Esimerkki PersonParameterTypeProt-taulun sisällöstä.
Halko-projektissa toteutettiin Kotka- ja Korppi-projekteissa käytettyyn henkilöstön hallinta-moduuliin lisäksi opettajien tietojen tallentamiseen tarkoitettu taulurakenne. Muutoin rakenteet ovat yhtenevät. Seuraavissa alaluvuissa esitetään näiden taulujen rakenteet.
Taulu laajentaa Person-taulua (luku 3.2) ja määrittelee Personin alityypin eli opettajan. Taulu sisältää seuraavat kentät:
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki taulun sisällöstä on taulukossa 41.
Deleted
|
AccessType
|
AddressTypeID
|
AccessRightLevelID
|
False
|
1
|
1
|
1
|
False
|
2
|
1
|
2
|
Taulukko 41: Esimerkki Teacher-taulun sisällöstä.
Taulu on toimintaperiaatteeltaan ja tarkoitukseltaan samanlainen kuin PersonParameter-taulu (luku 3.11). Erona on luonnollisesti se, että tämä taulu määrittelee lisäparametreja opettajalle. Taulu sisältää seuraavat kentät:
Deleted
|
ilmoittaa,
onko tietue merkitty poistetuksi.
|
ParameterID
|
on
taulun avainkenttä.
|
ParameterValue
|
määrittelee
parametrin arvon.
|
PersonID
|
määrittelee
henkilön eli opettajan, jonka parametrista on kyse.
|
ParameterTypeID
|
määrittelee
parametrin tyypin.
|
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki taulun sisällöstä on taulukossa 42.
Deleted
|
AccessType
|
PersonAddressTypeID
|
AccessRightLevelID
|
False
|
1
|
1
|
1
|
False
|
2
|
1
|
2
|
Taulukko 42: Esimerkki TeacherParameter-taulun sisällöstä.
Taulu määrittelee opettajan käytössä olevat parametrit. Taulu sisältää seuraavat kentät:
Deleted
|
ilmoittaa,
onko tietue merkitty poistetuksi.
|
ParameterTypeID
|
on
taulun avainkenttä.
|
Esimerkki taulun sisällöstä on taulukossa 43.
Deleted
|
ParameterTypeID
|
False
|
1
|
False
|
2
|
Taulukko 43: Esimerkki TeacherParameterType-taulun sisällöstä.
Taulu monikielistää opettajan parametrien nimet. Taulu sisältää seuraavat kentät:
Deleted
|
ilmoittaa,
onko tietue merkitty poistetuksi.
|
ParameterTypeID
|
määrittelee
parametrin tyypin.
|
LanguageID
|
määrittelee
parametrin kielen.
|
Name
|
määrittelee
parametrin nimen.
|
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki taulun sisällöstä on taulukossa 44.
Deleted
|
ParameterTypeID
|
LanguageID
|
Name
|
False
|
1
|
1
|
Veroprosentti
1
|
False
|
2
|
1
|
Veroprosentti
2
|
Taulukko 44: Esimerkki TeacherParameterTypeLang-taulun sisällöstä.
Kurssikirjanpitomoduuli vastaa sisällöltään suunnilleen nykyistä KURKI-järjestelmän tietokantaa. Kurssikirjanpidon taulurakenne sisältää kaikki opetusohjelmasta löytyvät kurssit ( Course, luku 4.2), kaikki tiettynä ajanjaksona luennoitavat kurssit ( CourseInstance, luku 4.6), ilmoittautumiset kursseille ( CourseParticipant, luku 4.13) sekä tietysti kursseihin kuuluvien demomerkintöjen ym. vastaavien hallinnan ( Result, luku 4.42). Lisäksi mukana on opinto-oppaan laadinnassa tarvittavat tiedot ( CourseDescription, luku 4.7). Puutteena on opintojaksojen arvostelufunktion puuttuminen , sillä nykyistä toteutusta on hankala siirtää vastaavalla tavalla uuteen järjestelmään.
Kurssikirjanpidon tarvitsemien taulujen lisäksi mukana on osa myös salivarausten suunnittelussa sekä henkilökohtaisen kalenterin laadinnassa tarvittavista tauluista. Lisäksi KURKI-järjestelmässä olevat henkilötietoihin liittyvät taulut on siirretty Person-osioon, jota käsitellään luvussa 3.
Kurssikirjanpito-moduulin ER-kaavio esitetään kuvassa 4 ja sen ominaisuuksiin perehdytään seuraavissa aliluvuissa. Taulujen Language ja Person ominaisuuksia ei esitetä yksityiskohtaisesti, sillä ne on esitelty luvuissa 3.13 ja 3.2
Course-taulu sisältää opetusohjelmassa olevien kurssien vakiona pysyvät tiedot. Se vastaa eräänlaista ohjelmointikielten tyypinmäärittelyä. Taulun rakenne on seuraava:
Deleted kertoo, onko kurssi poistettu
CourseID on taulun avainkenttä eli se yksilöi kurssit. Periaatteessa myös kurssikoodi ( Code) on yksikäsitteinen. Haastattelujen pohjalta tuli kuitenkin selväksi, että käytännössä näin ei ole, sillä kurssikoodit kiinnitetään joskus vasta kirjausvaiheessa. Esim. TIExxx-kursseja voi olla useita.
Code on opinto-oppaastakin löytyvä kurssikoodi (esim. MAT355).
OrganisationID ilmoittaa kurssin järjestävän organisaation tunnusnumeron. Vastaa periaatteessa kurssikoodin alkuosaa (esim MATxxx viittaa matematiikan laitokseen).
Level erittelee mm. approbatur-, cum laude- ja laudatur-tasoiset kurssit. Periaatteessa voitaisiin määritellä Level-taulukko, johon tämä kenttä viittaisi.
MinCredits määrittelee opintojakson opintoviikkomäärän minimin.
MaxCredits määrittelee opintojakson opintoviikkomäärän maksimin.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki Course-taulun sisällöstä on taulukossa 45. Siinä esitellään TIExxx-kurssi, jonka järjestää organisaatio 2, se on tasoa 1 ja siitä saa aina 3 opintoviikkoa.
Deleted
|
CourseID
|
Code
|
OrganisationID
|
Level
|
MinCreadits
|
MaxCredits
|
False
|
1
|
TIExxx
|
2
|
1
|
3
|
3
|
Taulukko 45: Esimerkki Course-taulun sisällöstä.
Tämä taulu määrittelee Course-taulussa (luku 4.2) määritellyille kursseille nimet kaikilla järjestelmän käyttämillä kielillä. Taulun rakenne on seuraava:
Deleted kertoo, onko käännös poistettu.
CourseID määrittelee käännettävän kurssin.
LanguageID määrittelee kielen, jolle käännös tehdään.
Name sisältää varsinaisen käännöksen.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki taulun sisällöstä on taulukossa 46.
Deleted
|
CourseID
|
LanguageID
|
Name
|
False
|
1
|
1
|
Test
course
|
False
|
1
|
2
|
Testikurssi
|
Taulukko 46: Esimerkki CourseTranslation-taulun sisällöstä.
Tässä taulussa määritellään kurssikuvauksissa tarvittavat tyypit. Tätä taulua käytettään kurssikuvauksen jakamiseen loogisiin kokonaisuuksiin, joten sitä voidaan hyödyntää vaikka opinto-opasta laadittaessa. Taulun rakenne on seuraava:
Deleted kertoo, onko kuvaustyyppi poistettu.
DescriptionTypeID on taulun avainkenttä.
Tauluun liittyvät relaatiot ovat seuraavat:
Taulukossa 47 on esimerkki DescriptionType-taulun mahdollisesta sisällöstä.
Deleted
|
DescriptionTypeID
|
False
|
1
|
False
|
2
|
Taulukko 47: Esimerkki DescriptionType-taulun sisällöstä.
Tässä taulussa määritellään tekstimuotoiset vastineet DescriptionType-taulussa (luku 4.4) määritellyille kuvaustyypeille. Taulun rakenne on seuraava:
Deleted kertoo, onko käännös poistettu.
DescriptionTypeID määrittelee ko. kuvaustyypin.
LanguageID kertoo kielen, jolle tyyppiä käännetään.
Name sisältää varsinaisen käännöksen.
Tauluun liittyvät relaatiot ovat seuraavat:
Taulukossa 48 on esimerkki taulun mahdollisesta sisällöstä
Deleted
|
DescriptionTypeID
|
LanguageID
|
Name
|
False
|
1
|
1
|
Prerequisities
|
False
|
1
|
2
|
Esitiedot
|
Taulukko 48: Esimerkki DescriptionTypeTranslation-taulun käytöstä.
Tämä taulu määrittelee tiettynä lukuvuonna pidettävät kurssit. Taulukon rakenne näyttää seuraavalta:
Deleted kertoo, onko kurssin esiintymä poistettu.
CourseInstanceID on taulun avainkenttä
CourseID määrittelee pidettävän kurssin tyypin Course-taulusta (luku 4.1).
StartDate kertoo kurssin alkamisajankohdan.
EndDate kertoo kurssin päättymisajankohdan.
WWWSite sisältää kurssin verkko-osoitteen.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki taulun sisällöstä on taulukossa 49.
Deleted
|
CourseInstanceID
|
CourseID
|
StartDate
|
EndDate
|
WWWSite
|
False
|
1
|
1
|
13.1.2001
|
30.4.2001
|
www.jyu.fi/kurssi
|
False
|
2
|
2
|
14.1.2001
|
28.4.2001
|
www.jyu.fi/kurssi2
|
Taulukko 49: Esimerkki CourseInstance-taulun sisällöstä.
Tämä taulu sisältää kurssikuvaukset kaikilla järjestelmän käyttämillä kielillä. Itse kuvaus kootaan useista taulussa DescriptionType (luku 4.4) määritellyn tyyppisistä osista. Taulun rakenne on seuraava:
Deleted kertoo, onko kurssikuvauksen osa poistettu.
CourseInstanceID määrittelee kurssin, johon kuvaus liityy.
DescriptionTypeID kertoo, minkä tyyppisestä kurssikuvauksen osasta on kyse.
LanguageID kertoo kuvauksessa käytetyn kielen.
Description sisältää itse tekstin.
Tauluun liittyvät relaatiot ovat seuraavat:
Jos esimerkiksi taulut CourseInstance ja DescriptionType ovat taulukkojen 41 ja 39 kaltaiset, voisi CourseDescription-taulun sisältö olla taulukon 51 kaltainen. Tällöin kurssi 1 on kurssin 2 esitietovaatimuksena.
Deleted
|
CourseInstanceID
|
DescriptionTypeID
|
LanguageID
|
Description
|
False
|
2
|
1
|
1
|
Course
1
|
False
|
2
|
1
|
2
|
Kurssi
1
|
Taulukko 51: Esimerkki CourseDescription-taulun sisällöstä
Tämä taulu määrittelee kaikki erilaiset kurssien suoritustavat. Periaatteessa tämä taulu tuntuu olevan turha, sillä samaan tulokseen päästään käyttämällä CourseDescription-taulua (luku 4.7). Erillistä taulua käyttämällä järjestelmä tarjoaa kuitenkin suoritustavat vakioteksteinä, eikä niitä tarvitse kirjoittaa jokaisen kurssin kurssikuvauksen yhteen Description-elementtiin erikseen. Taulun rakenne on seuraava:
Deleted kertoo, onko suoritustapa poistettu.
CompletionTypeID on taulun avainkenttä.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki taulun sisällöstä on taulukossa 52.
Deleted
|
CompletionTypeID
|
False
|
1
|
False
|
2
|
Taulukko 52: Esimerkki CompletionType-taulun sisällöstä.
Tämä taulu sisältää kaikki kurssin suoritustavat teksteinä kaikilla järjestelmän käyttämillä kielillä. Taulun rakenne on seuraava:
Deleted kertoo, onko käännös poistettu.
CompletionTypeID määrittelee käännettävän suoritustavan.
LanguageID kertoo, mille kielelle suoritustapa käännetään.
Name sisältää varsinaisen käännöksen.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki taulun sisällöstä on taulukossa 53.
Deleted
|
CompletionTypeID
|
LanguageID
|
Name
|
False
|
1
|
1
|
Final
examination
|
False
|
1
|
2
|
Lopputentti
|
Taulukko 53: Esimerkki CompletionTypeTranslation-taulun sisällöstä.
Tämä taulu määrittelee, millä tavoin minkäkin pidettävän kurssin voi suorittaa. Taulun rakenne on seuraava:
Deleted kertoo, onko suoritustapa poistettu.
CourseInstanceID määrittelee kyseisen kurssin.
CompletionTypeID kertoo, millä tavoin suoritus onnistuu.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki taulun sisällöstä annetaan taulukossa 54. Esimerkissä kurssin 1 voi suorittaa tavalla 1, mutta kurssin 2 kohdalla tämä ei ole enää mahdollista.
Deleted
|
CourseInstanceID
|
CompletionTypeID
|
False
|
1
|
1
|
True
|
2
|
1
|
Taulukko 54: Esimerkki CourseInstanceCompletionType-taulun sisällöstä.
Tämä taulu määrittelee kurssikirjanpitomoduulin käyttäjäryhmät, kuten kurssilaiset ja luennoitsijat. Tämän taulun nimeä on ehdotettu vaihdettavaksi kuvaavammaksi, sillä kehitettävänä on Kurki-järjestelmän seuraaja. Tosin taulun nimi ei näy sovelluksen käyttäjälle mitenkään, joten aivan pakollista se ei ole. Taulun rakenne on seuraava:
Deleted kertoo, onko käyttäjäryhmä poistettu.
UserGroupID on taulun avainkenttä.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki taulun sisällöstä esitetään taulukossa 55.
Deleted
|
UserGroupID
|
False
|
1
|
False
|
2
|
Taulukko 55: Esimerkki UserGroup-taulun sisällöstä.
Tämä taulu määrittelee kaikille kurssikirjanpidon käyttäjäryhmille nimet kaikilla järjestelmän käyttämillä kielillä . Luvussa 4.11 esitetyt moitteet taulun nimeämisessä koskevat myös UserGroupTranslation-taulua. Taulun rakenne on seuraava:
Deleted kertoo, onko käännös poistettu.
UserGroupID määrittelee ko. käyttäjäryhmän.
LanguageID määrittelee käsiteltävän kielen.
Name sisältää varsinaisen käännöksen.
Tauluun liittyvät relaatiot ovat seuraavat:
Mikäli käyttäjäryhmät ovat kuten taulukossa 55, voisi UserGroupTranslation-taulun sisältö näyttää taulukossa 56 esitetyn kaltaiselta.
Deleted
|
UserGroupID
|
LanguageID
|
Name
|
False
|
1
|
1
|
Lecturer
|
False
|
1
|
2
|
Luennoitsija
|
False
|
2
|
1
|
Student
|
False
|
2
|
2
|
Opiskelija
|
Taulukko 56: Esimerkki UserGroupTranslation-taulun sisällöstä.
Tässä taulussa määritellään kaikki kursseille osallistuvat henkilöt. Tänne tallennetaan tiedot niin kurssilaisista, luennoitsijoista kuin demonpitäjistäkin. Ryhmät erotellaan toisistaan UserGroupID-kentän perusteella. Kurssille ilmoittautuminen tapahtuu lisäämällä rivi tähän tauluun. Taulun rakenne on seuraava:
Deleted kertoo, onko osallistuja poistettu.
PersonID määrittelee kurssille osallistuvan henkilön.
CourseID määrittelee henkilölle kurssin.
UserGroupID määrittelee henkilön roolin kurssilla.
Tauluun liittyvät relaatiot ovat seuraavat:
Mikäli käyttäjäryhmät on määritelty taulukossa 55 esitetyllä tavalla, voisi CourseParticipant-taulukon sisältö näyttää taulukon 57 kaltaiselta. Tässä esimerkissä henkilö 1 on luennoitsijana kurssilla 1 ja henkilö 2 on kurssilainen samalla kurssilla.
Deleted
|
PersonID
|
CourseID
|
UserGroupID
|
False
|
1
|
1
|
1
|
False
|
2
|
1
|
2
|
Taulukko 57: Esimerkki CourseParticipant-taulukon sisällöstä.
Finished-tauluun merkitään kaikki hyväksytyt kurssit. Taulun rakenne on seuraava:
Deleted kertoo, onko arvosana poistettu.
PersonID määrittelee henkilön jonka tiedoista on kyse.
Person2ID kertoo tuloksen kirjaajan.
CourseID kertoo tapahtumaan liittyvän kurssin.
GradeID määrittelee arvosteluasteikon.
Credits kertoo opintoviikkomäärän.
Code kertoo kurssin koodin.
FinishedOn kertoo, milloin kurssi on hyväksytty.
RegisteredOn kertoo, milloin kurssi on rekistetöity.
Tauluun liittyvät relaatiot ovat seuraavat:
Taulun sisältö voisi näyttää esimerkiksi taulukon 58 kaltaiselta.
Deleted
|
PersonID
|
Person2ID
|
CourseID
|
GradeID
|
Credits
|
False
|
1
|
3
|
2
|
1
|
2
|
False
|
2
|
4
|
4
|
2
|
4
|
Code
|
FinishedOn
|
RegisteredOn
|
TIE110
|
2001-03-20
|
2001-04-30
|
TIE220
|
2001-03-30
|
2001-04-20
|
Taulukko 58: Esimerkki Finished-taulun sisällöstä.
Tämä taulu sisältää kaikki järjestelmässä käytettävät arvosanat. Taulun rakenne on seuraava:
Deleted kertoo, onko arvosana poistettu.
GradeID on taulun avainkenttä.
BelongsInGroup kertoo mihin ryhmään arvosana kuuluu.
Tauluun liittyvät relaatiot ovat seuraavat:
Taulun sisältö voisi näyttää esimerkiksi taulukon 59 kaltaiselta.
Deleted
|
GradeID
|
BelongsInGroup
|
False
|
1
|
1
|
False
|
2
|
2
|
Taulukko 59: Esimerkki Grade-taulun sisällöstä.
Tämä taulu sisältää kaikki järjestelmässä käytettävät arvosanat tekstimuodossa kaikilla järjestelmässä käytetyillä kielillä. Käännöstaulu tarvitaan, sillä osa arvosanoista on sanallisia (kuten hyväksytty ja hylätty). Taulun rakenne on seuraava.
Deleted kertoo, onko käännös poistettu.
GradeID määrittelee käännettävän arvosanan.
LanguageID määrittelee kielen, jolle arvosana käännetään.
Name sisältää varsinaisen käännöksen.
Tauluun liittyvät relaatiot ovat seuraavat:
Mikäli arvosanat on määritelty taulukossa 59 esitetyllä tavalla, voisi GradeTranslation-taulu näyttää taulukon 60 kaltaiselta.
Deleted
|
GradeID
|
LanguageID
|
Name
|
False
|
1
|
1
|
Failed
|
False
|
1
|
2
|
Hylätty
|
False
|
2
|
1
|
Passed
|
False
|
2
|
2
|
Hyväksytty
|
Taulukko 60: Esimerkki GradeTranslation-taulusta.
Tämä taulu sisältää kaikki tiedot pistemääristä. Taulun rakenne on seuraava:
Deleted kertoo, onko arvosana poistettu.
PointsID on taulun avainkenttä.
NumberOfPoints kertoo pisteiden lukumäärän.
CalculatePointsID kertoo tiedon mitä kaavaa käyttäen pisteet lasketaan.
GradeID Määrittelee arvosana-asteikon.
Tauluun liittyvät relaatiot ovat seuraavat:
Taulun sisältö voisi näyttää esimerkiksi taulukon 61 kaltaiselta.
Deleted
|
PointsID
|
NumberOfPoints
|
CalculatePointsID
|
GradeID
|
False
|
1
|
15
|
1
|
1
|
False
|
2
|
20
|
2
|
2
|
Taulukko 61: Esimerkki Points-taulun sisällöstä.
Tämä taulu sisältää tiedon siitä, miten arvosana lasketaan. Taulun rakenne on seuraava:
Deleted kertoo, onko arvosana poistettu.
CalculatePointsID on taulun avainkenttä
Tauluun liittyvät relaatiot ovat seuraavat:
Taulun sisältö voisi näyttää esimerkiksi taulukon 62 kaltaiselta.
Deleted
|
CalculatePointsID
|
False
|
1
|
False
|
2
|
Taulukko 62: Esimerkki Calculate Points-taulun sisällöstä.
Tämä taulu sisältää järjestelmässä käytettävien arvosteluasteikkojen käännökset. Taulun rakenne on seuraava.
Deleted kertoo, onko käännös poistettu.
CalculatePointsID määrittelee käännettävän arvosanan.
LanguageID määrittelee kielen, jolle arvosana käännetään.
Name sisältää varsinaisen käännöksen.
Tauluun liittyvät relaatiot ovat seuraavat:
Taulu näyttää taulukon 63 kaltaiselta.
Deleted
|
CalculatePointsID
|
LanguageID
|
Name
|
False
|
1
|
2
|
Oma_arvostelu
|
False
|
2
|
2
|
Norm_arvostelu
|
Taulukko 63: Esimerkki CalculatePointsLang-taulusta.
CalculatePointsCourseInstance-taulu määrittelee, mitkä arvostelufunktiot kuuluvat mihinkin kurssi-instanssiin. Taulun rakenne on seuraava:
Deleted kertoo, onko tapahtumaryhmä poistettu.
CourseInstanceID määrittelee kurssin.
CalculatePointsID määrittelee arvosteluasteikon joka liittyy ko. kurssiin.
Tauluun liittyvät relaatiot ovat seuraavat:
Taulu näyttää taulukon 64 kaltaiselta.
Deleted
|
CourseInstanceID
|
CalculatePointsID
|
FALSE
|
1
|
1
|
FALSE
|
2
|
2
|
Taulukko 64: Esimerkki CalculatePointsCourseInstance-taulun sisällöstä.
Tämä taulu määrittelee kaikki järjestelmän käyttämät ryhmätyypit. Tällaisia ovat esimerkiksi demoryhmät, tentit, luennot ja kokoukset. Taulun rakenne on seuraava:
Deleted kertoo, onko ryhmätyyppi poistettu.
GroupTypeID on taulun avainkenttä.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki taulun sisällöstä on taulukossa 65.
Deleted
|
GroupTypeID
|
False
|
1
|
False
|
2
|
Taulukko 65: Esimerkki GroupType-taulun sisällöstä.
Tämä taulu sisältää kaikki ryhmätyypit teksteinä kaikilla järjestelmän käyttämillä kielillä. Taulun rakenne on seuraava:
Deleted kertoo, onko käännös poistettu.
GroupTypeID määrittelee käännettävän ryhmätyypin.
LanguageID kertoo, mille kielelle suoritustapa käännetään.
Name sisältää varsinaisen käännöksen.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki taulun sisällöstä on taulukossa 66.
Deleted
|
GroupTypeID
|
LanguageID
|
Name
|
False
|
1
|
1
|
Examination
|
False
|
1
|
2
|
Tentti
|
Taulukko 66: Esimerkki GroupTypeTranslation-taulun sisällöstä.
EventGroup-taulu määrittelee useita samanlaisia tilaisuuksia sisältävän tilaisuusryhmän. Yksittäiset tapahtumat on määritelty Event-taulussa (luku 4.25). Ryhmäajattelun ideana on kapseloida samaan loogiseen kokonaisuuteen kuuluvat tilaisuudet yhteisen otsikon alle, jolloin tapahtumaryhmään ilmoittautuminen ilmoittaa henkilön kaikkiin ryhmän tapahtumiin, kuten demoryhmän eri demokertoihin. Taulun rakenne on seuraava:
Deleted kertoo, onko tapahtumaryhmä poistettu.
EventGroupID on taulun avainkenttä.
GroupTypeID määrittelee tapahtumaryhmän tyypin.
CourseInstanceID määrittelee kurssin, johon tapahtumaryhmä liittyy. Periaatteessa ryhmän ei tarvitse kuulua mihinkään kurssiin (esim. laitosneuvoston kokoukset).
EventGroupName kertoo tapahtumaryhmän nimen. Mahdollisesti tämä pitäisi tarjota usealla kielellä.
MaxParticipants kentän tarkoitus on rajoittaa ilmoittautumisten määrää.
MinParticipants kentän tarkoitus on rajoittaa ilmoittautumisten määrää.
NumberOfOccurences kenttään kirjataan tilaisuusryhmää suunniteltaessa tavoite kokoontumiskertojen määrästä. Voidaan myös käyttää pelkän toistomäärän ilmoittamiseen.
URI kenttään kirjataan tapahtumaryhmän internet-sivun osoite.
ValidUntil ilmoittaa, mihin saakka ryhmä on voimassa. Käytetään kannan ylläpidon helpottamiseen.
Comment kenttään kirjataan ryhmään liittyviä lisätietoja tai selitteitä.
Tauluun liittyvät relaatiot ovat seuraavat:
Taulukossa 67 olevassa esimerkissä määritellään kurssiin 1 liittyvä tyyppiä 1 oleva tapahtuma. Sen sijaan tapahtuma 2 ei kuulu mihinkään kurssiin.
Deleted
|
EventGroupID
|
GroupTypeID
|
CourseInstanceID
|
EventGroupName
|
False
|
1
|
1
|
1
|
Ryhmä1
|
False
|
2
|
7
|
NULL
|
FC
Kuokkala
|
MinParticipants
|
MaxParticipants
|
NumberOfOccurences
|
10
|
20
|
10
|
NULL
|
NULL
|
20
|
URI
|
ValidUntil
|
Comment
|
www.mit.jyu.fi
|
27-04-2002
00:00:00+03
|
opetusryhmä
|
NULL
|
30-08-2003+03
|
Jalkapallojoukkue
|
Taulukko 67: Esimerkki EventGroup-taulun sisällöstä.
Tämä taulu määrittelee ilmoittautumisen tapahtumaryhmään ja sitä kautta myös tapahtumaan. Tätä taulua on tarkoitus käyttää opetusryhmiin ilmoittautumisessa. Sen sijaan kursseille ilmoittautumiset menevät CourseParticipant-tauluun (luku 4.13). Näin toimitaan siksi, että joku kurssille ilmoittautunut ei välttämättä ilmoittaudu mihinkään opetustilaisuuteen. Luonnollisesti myös henkilökohtaisiin tapahtumaryhmiin liittyminen toteutetaan tämän taulun avulla. Taulun rakenne on seuraava:
Deleted kertoo, onko ilmoittautuminen peruttu.
PersonID kertoo ilmoittautuneen henkilön.
EventGroupID määrittelee ryhmän, johon on ilmoittauduttu.
Registered on ajankohta, jolloin ilmoittautuminen on tapahtunut.
UserLevel määrittelee ryhmään kuuluvan henkilön oikeudet esim. ryhmän muokkauksessa. Voi olla, että tästä tehdään oma taulunsa.
GroupParticipantID on taulun perusavainkenttä.
Tauluun liittyvät relaatiot ovat seuraavat:
Taulukossa 68 olevassa esimerkissä henkilö 1 on ilmoittautunut ryhmään 1. Henkilö 2 taas on perunut ilmoittautumisensa.
Deleted
|
PersonID
|
EventGroupID
|
Registered
|
False
|
1
|
1
|
1.2.2000
|
True
|
2
|
1
|
2.2.2000
|
GroupParticipantID
|
UserLevel
|
12
|
1
|
13
|
0
|
Taulukko 68: Esimerkki GroupParticipant-taulusta.
Event-taulu määrittelee yksittäiset tapahtumat. Järjestelmän kannalta tapahtuma on jotain, joka tapahtuu jossain tilassa ja vaatii jonkin verran aikaa. Lisäksi tapahtumaan on kyettävä ilmoittautumaan. Tämän taulun tapahtumat tarkistamalla voidaan luoda henkilökohtainen lukujärjestys kalenterimoduuliin. Taulun rakenne näyttää seuraavalta:
Deleted kertoo, onko tapahtuma poistettu.
EventID on taulun avainkenttä.
EventGroupID määrittelee tapahtumaryhmän, johon tapahtuma kuuluu.
RealParticipants kertoo tapahtuman todellisen osallistujamäärän. Tämä voi erota ilmoittautuneiden määrästä. Tätä kenttää voidaan hyödyntää seuraavia vastaavia tilaisuuksia suunniteltaessa. Osallistujamäärää rajoittaa myös MaxParticipants, joka on esitelty luvussa 4.18.
BeginTime kertoo tapahtuman alkamisajan.
EndTime kertoo tapahtuman päättymisajan.
VisibilityID liittää tapahtumalle näkyvyysarvon.
PriorityID liittää tapahtumalle tärkeysarvon l. prioriteetin.
Name kertoo tapahtuman nimen tai kuvauksen.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki taulun sisällöstä on taulukossa 69. Siinä määritellään kaksi tapahtumaa, joista jälkimmäinen ei liity mihinkään tapahtumaryhmään.
Deleted
|
EventID
|
EventGroupID
|
RealParticipants
|
BeginTime
|
False
|
123
|
12
|
37
|
2001-09-17
08:00:00+02
|
False
|
124
|
NULL
|
1
|
2001-12-12
19:30:00+02
|
VisibilityID
|
EndTime
|
PriorityID
|
Name
|
1
|
2001-09-17
10:00:00+02
|
1
|
NULL
|
2
|
2001-12-13
04:00:00+02
|
1
|
Ulos
Leenan kanssa
|
Taulukko 69. Esimerkki Event-taulun käytöstä.
Tämä taulu määrittelee tilaisuuksien pitäjät. Yhdellä tilaisuudella voi olla useampia kuin yksi pitäjä. Taulun rakenne on seuraava:
Deleted kertoo, onko tilaisuuden pitäjä poistettu.
EventID määrittelee tilaisuuden.
PersonID kertoo tilaisuuden pitäjän.
Tauluun liittyvät relaatiot ovat seuraavat:
Taulukossa 70 olevassa esimerkissä tilaisuudella 1 on pitäjänä henkilö 1 sekä tilaisuudella 2 henkilöt 2 ja 3.
Deleted
|
EventID
|
PersonID
|
False
|
1
|
1
|
False
|
2
|
2
|
False
|
2
|
3
|
Taulukko 70: Esimerkki EventPerson-taulun sisällöstä.
Space-taulu määrittelee kaikki järjestelmän tuntemat tilat, kuten luentosalit ja demoluokat. Lisäksi Space käsittää järjestelmän tuntemat varattavat resurssit (esim. liikuteltavat videoprojektorit). Jos tietue on resurssi, sen täytyy sisältää 1 to 1 -suhde Resource-tauluun, jossa kuvataan resurssin tyyppi (tällöin "salin" tyyppi on Oheisvarattava). Tauluun on esitetty lisättäväksi tilasta kertova kommentti, joka tietysti pitäisi monikielistää. Taulun rakenne on seuraava:
Deleted kertoo, onko tila poistettu järjestelmästä.
SpaceID on taulun avainkenttä
Code kertoo tilan koodin, esimerkiksi MaA102.
OrganisationID määrittelee organisaation, jonka hallintaan tila kuuluu.
SpaceTypeID määrittelee salin tyypin, esimerkiksi mikroluokka. Jos tyyppi ei ole tiedossa, se voi olla NULL.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki tilataulun käytöstä on taulukossa 71.
Deleted
|
SpaceID
|
Code
|
OrganisationID
|
SpaceTypeID
|
False
|
1
|
MaA102
|
1
|
1
|
False
|
2
|
MaD202
|
1
|
NULL
|
Taulukko 71: Esimerkki Space-taulun sisällöstä.
EventSpace-taulu määrittelee Event-taulussa (luku 4.25) esiintyneille tapahtumille tilat. Samalle tapahtumalle voidaan tarvittaessa ilmoittaa useampia tiloja. Jos vastaavasta tapahtumasta on tehty salivaraus Reservation-tauluun ja EventSpacen tietoja muutetaan, varauksen tietoja päivitetään luvussa 12.1 määritellyn säännön mukaisesti. Taulun rakenne näyttää seuraavalta:
Deleted kertoo, onko tilavaraus poistettu.
EventID kertoo tilaan liittyvän tapahtuman.
SpaceID määrittelee varatun tilan.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki taulun sisällöstä esitetään taulukossa 72.
Deleted
|
EventID
|
SpaceID
|
False
|
1
|
1
|
Taulukko 72: Esimerkki EventSpace-taulun sisällöstä.
Resource-taulussa määritellään tunnetut resurssit. Resurssilla tarkoitetaan mitä tahansa ominaisuutta tai esinettä, joka voidaan liittää tiloihin ja hyödyntää salivarausten suunnittelussa. Resursseja ovat esimerkiksi taulut, piirtoheittimet, mikrot ja istumapaikat. Taulun rakenne on seuraava:
Deleted kertoo, onko resurssi poistettu.
ResourceID on taulun avainkenttä.
Name sisältää resurssityypin nimen.
Tauluun liittyvät relaatiot ovat seuraavat:
Taulun sisältö voisi näyttää esimerkiksi taulukossa 73 esitetyn kaltaiselta.
Deleted
|
ResourceID
|
Name
|
False
|
1
|
Paikkamäärä
|
False
|
2
|
Liitutaulu
|
Taulukko 73: Esimerkki Resource-taulusta.
Tämä taulu määrittelee kaikille järjestelmän resursseille nimet kaikilla järjestelmän käyttämillä kielillä. Taulun rakenne on seuraava:
Deleted kertoo, onko käännös poistettu.
ResourceGroupID määrittelee ko. resurssisin.
LanguageID määrittelee ko. kielen.
Name sisältää varsinaisen käännöksen.
Tauluun liittyvät relaatiot ovat seuraavat:
Mikäli resurssit ovat kuten taulukossa 74, voisi ResourceTranslation-taulun sisältö näyttää taulukossa 60 esitetyn kaltaiselta.
Deleted
|
ResourceID
|
LanguageID
|
Name
|
False
|
1
|
1
|
seats
|
False
|
1
|
2
|
istumapaikkoja
|
False
|
2
|
1
|
phone
|
False
|
2
|
2
|
puhelin
|
Taulukko 74: Esimerkki ResourceTranslation-taulun sisällöstä.
SpaceResource-taulu määrittelee tietyn resurssin johonkin tilaan. Lisäksi resurssille voidaan antaa jokin tietty lisätieto. Esimerkiksi, jos resurssi on puhelin, lisätiedoksi voidaan sijoittaa puhelinnumero. Taulun rakenne on seuraava:
Deleted kertoo, onko resurssi poistettu tilasta.
SpaceID määrittelee ko. tilan.
ResourceID määrittelee tilassa sijaitsevan resurssin tyypin.
Value sisältää reusrssiin liittyvän lisätiedon.
Tauluun liittyvät relaatiot ovat seuraavat:
Mikäli resurssitaulu on taulukon 75 kaltainen, voisi SpaceResource-taulun sisältö näyttää taulukon 61 kaltaiselta.
Deleted
|
SpaceID
|
ResourceID
|
Value
|
False
|
1
|
2
|
014-1234567
|
Taulukko 75: Esimerkki SpaceResource-taulun sisällöstä.
Field-taulu sisältää kursseilla tarvittavat kenttätyypit. Näitä ovat esimerkiksi kentät kurssin demokerroille. Eri kurssit voivat luonnollisesti määritellä omat kenttänsä tarpeensa mukaan. Taulun rakenne on seuraava:
Deleted kertoo, onko kenttä poistettu.
FieldID on taulun avainkenttä.
FieldTypeID määrittelee fieldtypen.
FieldGroupID määrittelee fieldgroupin.
OrderNum määrittelee järjestysnumeron.
DefaultValue määrittelee oletusarvon.
Tauluun liittyvät relaatiot ovat seuraavat:
Taulun sisältö voisi näyttää taulukon 76 kaltaiselta.
Deleted
|
FieldID
|
FieldTypeID
|
FieldGroupID
|
OrderNum
|
DefaultValue
|
False
|
1
|
2
|
1
|
1
|
Demo1
|
Taulukko 76: Esimerkki Field-taulun sisällöstä.
Tämä taulu määrittelee kaikille kenttätyypeille nimet kaikilla järjestelmän käyttämillä kielillä. Taulun rakenne on seuraava:
Deleted kertoo, onko käännös poistettu.
FieldID määrittelee ko. kenttätyypin.
LanguageID määrittelee ko. kielen.
Name sisältää varsinaisen käännöksen.
Tauluun liittyvät relaatiot ovat seuraavat:
Deleted
|
FieldID
|
LanguageID
|
Name
|
False
|
1
|
1
|
demo
|
False
|
2
|
2
|
Tentti
|
Taulukko 77: Esimerkki Field Translation-taulun sisällöstä.
FieldType-taulu sisältää kursseilla tarvittavan kenttätyypin. Taulun rakenne on seuraava:
Deleted kertoo, onko kenttä poistettu.
FieldTypeID on taulun avainkenttä.
Tauluun liittyvät relaatiot ovat seuraavat:
Taulun sisältö voisi näyttää taulukon 78 kaltaiselta.
Deleted
|
FieldTypeID
|
False
|
1
|
Taulukko 78: Esimerkki Field-taulun sisällöstä.
Tämä taulu määrittelee kaikille kenttätyypeille nimet kaikilla järjestelmän käyttämillä kielillä. Taulun rakenne on seuraava:
Deleted kertoo, onko käännös poistettu.
FieldTypeID määrittelee ko. kenttätyypin.
LanguageID määrittelee ko. kielen.
Name sisältää varsinaisen käännöksen.
Tauluun liittyvät relaatiot ovat seuraavat:
Deleted
|
FieldTypeID
|
LanguageID
|
Name
|
False
|
1
|
1
|
demo
|
False
|
2
|
2
|
Tentti
|
Taulukko 79: Esimerkki FieldTypeLang-taulun sisällöstä.
Choice-taulu sisältää kursseilla tiedon valitusta kenttätyypistä. Taulun rakenne on seuraava:
Deleted kertoo, onko kenttä poistettu.
ChoiceID on taulun avainkenttä.
OrderNum määrittelee järjestysnumeron.
Tauluun liittyvät relaatiot ovat seuraavat:
Taulun sisältö voisi näyttää taulukon 80 kaltaiselta.
Deleted
|
FieldTypeID
|
OrderNum
|
False
|
1
|
1
|
Taulukko 80: Esimerkki Choice-taulun sisällöstä.
Tämä taulu määrittelee kaikille valituille kenttätyypeille nimet kaikilla järjestelmän käyttämillä kielillä. Taulun rakenne on seuraava:
Deleted kertoo, onko käännös poistettu.
ChoiceID määrittelee ko. valinnan.
LanguageID määrittelee ko. kielen.
Name sisältää varsinaisen käännöksen.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki taulun sisällöstä on taulukossa 81.
Deleted
|
ChoiceID
|
LanguageID
|
Name
|
False
|
1
|
1
|
demo
|
False
|
2
|
2
|
Tentti
|
Taulukko 81: Esimerkki ChoiceTranslation-taulun sisällöstä.
Tämä taulu määrittelee valinnan ja siihen liittyvän kenttätyypin. Taulun rakenne on seuraava:
Deleted kertoo, onko tapahtuma poistettu.
FieldID määrittelee kentän.
ChoiceID kertoo valitun kentän.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki taulun sisällöstä on taulukossa 82
Deleted
|
EventID
|
PersonID
|
False
|
1
|
1
|
False
|
2
|
2
|
False
|
2
|
3
|
Taulukko 82: Esimerkki FieldChoice-taulun sisällöstä.
FieldGroup-taulu sisältää kursseilla tarvittavat kenttätyyppiryhmät. Taulun rakenne on seuraava:
Deleted kertoo, onko kenttä poistettu.
FieldGroupID on taulun avainkenttä.
Tauluun liittyvät relaatiot ovat seuraavat:
Taulun sisältö voisi näyttää taulukon 83 kaltaiselta.
Deleted
|
FieldGroupID
|
False
|
1
|
Taulukko 83: Esimerkki Field-taulun sisällöstä.
Tämä taulu määrittelee kaikille kenttätyyppiryhmille nimet kaikilla järjestelmän käyttämillä kielillä. Taulun rakenne on seuraava:
Deleted kertoo, onko käännös poistettu.
FieldGroupID määrittelee ko. kenttätyypin.
LanguageID määrittelee ko. kielen.
Name sisältää varsinaisen käännöksen.
Tauluun liittyvät relaatiot ovat seuraavat:
Deleted
|
FieldTypeID
|
LanguageID
|
Name
|
False
|
1
|
1
|
demo
|
False
|
2
|
2
|
Tentti
|
Taulukko 84: Esimerkki FieldGroupLang -taulun sisällöstä.
Tämä taulu määrittelee, mitkä oikeudet vaaditaan minkäkin tyyppisen kentän muuttamiseen. Taulukon rakenne on seuraava:
Deleted kertoo, onko käyttöoikeus poistettu.
AccessType määrittelee, minkä tyyppisestä oikeudesta on kyse (lukuoikeus vai luku ja kirjoitus).
FieldID määrittelee kentän, johon oikeus liittyy.
UserGroupID määrittelee käyttäjäryhmän, jolle oikeus on myönnetty.
Tauluun liittyvät relaatiot ovat seuraavat:
Taulukossa 85 käyttäjäryhmällä 1 on tason 2 oikeudet kenttätyyppiin 1.
Deleted
|
AccessType
|
FieldID
|
UserGroupID
|
False
|
2
|
1
|
1
|
Taulukko 85: Esimerkki FieldProtection-taulun sisällöstä.
Tämä taulu sisältää kaikki kursseilla tehdyt kurssikirjanpitomerkinnät. Taulu vastaa vanhan Kurki-järjestelmän kurssitauluja. Taulun rakenne on seuraava:
Deleted kertoo, onko merkintä poistettu.
FieldID määrittelee merkinnän tyypin.
PersonID kertoo henkilön, jonka suorituksesta on kyse.
Person2ID kertoo tuloksen kirjaajan. Kentälle voisi kehittää kuvaavamman nimen.
Value sisältää varsinaisen merkinnän.
Registered kertoo kirjaushetken.
Tauluun liittyvät relaatiot ovat seuraavat:
Taulukon Result sisältö voisi näyttää taulukon 86 kaltaiselta. Esimerkissä henkilö 1 on saanut tilaisuudesta 1 merkinnän 4, joka voisi tarkoittaa vaikka demorastien määrää. Henkilö 2 on kirjannut tuloksen järjestelmään.
Deleted
|
FieldID
|
PersonID
|
Person2ID
|
Value
|
Registered
|
False
|
1
|
1
|
2
|
4
|
4.2.2000
|
Taulukko 86: Esimerkki Result-taulun sisällöstä.
Taulu on toiminnaltaan vastaava kuin CourseDescription eli määrittelee kurssi-instansseille uusia parametreja. Erona CourseDescription-tauluun on se, että tässä taulussa arvot ovat integer-tyyppisiä. Taulu sisältää seuraavat kentät:
Deleted
|
ilmoittaa,
onko tietue merkitty poistetuksi.
|
ParameterID
|
on
taulun avainkenttä.
|
ParameterTypeID
|
kertoo
parametrin tyypin.
|
CourseInstanceID
|
määrittelee
kurssi-instanssin, jonka parametrista on kyse.
|
ParameterValue
|
on
parametrin arvo.
|
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki taulun sisällöstä on taulukossa 87 .
Deleted
|
ParameterID
|
ParameterTypeID
|
CourseInstanceID
|
ParameterValue
|
False
|
1
|
1
|
1
|
10
|
False
|
2
|
2
|
1
|
20
|
Taulukko 87: Esimerkki CourseInstParamInt-taulun sisällöstä.
Taulu määrittelee kursseille käytetyt integer-tyyppiset parametrit. Taulu sisältää seuraavat kentät:
Deleted
|
ilmoittaa,
onko tietue merkitty poistetuksi.
|
ParameterTypeID
|
on
taulun avainkenttä.
|
Esimerkki taulun sisällöstä on taulukossa 88.
Deleted
|
ParameterTypeID
|
False
|
1
|
False
|
2
|
Taulukko 88: Esimerkki CourseInstParamIntType-taulun sisällöstä.
Taulu monikielistää CourseInstParamIntType-taulun. Taulu sisältää seuraavat kentät:
Deleted
|
ilmoittaa,
onko tietue merkitty poistetuksi.
|
ParameterTypeID
|
kertoo
parametrin tyypin.
|
LanguageID
|
määrittelee
käytettävän kielen.
|
Name
|
on
parametrin nimi.
|
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki taulun sisällöstä on taulukossa 89.
Deleted
|
ParameterTypeID
|
LanguageID
|
Name
|
False
|
1
|
1
|
Opiskelija-arvio
|
False
|
1
|
2
|
Student
estimate
|
Taulukko 89: Esimerkki CourseInstParamInt-taulun sisällöstä.
Tässä taulussa määritellään kursseille niiden mahdolliset tilat, kuten keskeytetty ja toiminnassa. Taulu sisältää seuraavat kentät:
Deleted
|
ilmoittaa,
onko tietue merkitty poistetuksi.
|
StatusID
|
on
taulun avainkenttä.
|
Esimerkki taulun sisällöstä on taulukossa 90.
Deleted
|
StatusID
|
False
|
1
|
False
|
2
|
Taulukko 90: Esimerkki CourseStatus-taulun sisällöstä.
Taulu monikielistää CourseStatus-taulun. Taulu sisältää seuraavat kentät:
Deleted
|
ilmoittaa,
onko tietue merkitty poistetuksi.
|
StatusID
|
määrittelee
kyseessä olevan tilan.
|
LanguageID
|
määrittelee
käytettävän kielen.
|
Name
|
on
tilan nimi.
|
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki taulun sisällöstä on taulukossa 91.
Deleted
|
StatusID
|
LanguageID
|
Name
|
False
|
1
|
1
|
Keskeytetty
|
False
|
1
|
2
|
Canceled
|
Taulukko 91: Esimerkki CourseStatusLang-taulun sisällöstä.
Taulussa määritellään erilaisia kursseja määritteleviä ryhmiteltyjä alkioita. Tarkoituksena on mahdollistaa kurssien lisämäärittäminen dynaamisesti. Taulussa voidaan esimerkiksi määritellä erilaisia kurssityyppejä tai kurssin kohderyhmiä. Tietty kurssi voi kuulua useampaankin ryhmään, mutta kurssia määrittelee vain yksi alkio per ryhmä. Taulu sisältää seuraavat kentät:
Deleted
|
ilmoittaa,
onko tietue merkitty poistetuksi.
|
ObjectGroupID
|
on
taulun avainkenttä.
|
BelongsInGroup
|
ryhmittelee
taulun alkoita.
|
Esimerkki taulun sisällöstä on taulukossa 92, jossa molemmat alkiot kuuluvat samaan ryhmään.
Deleted
|
ObjectGroupID
|
BelongsInGroup
|
False
|
1
|
1
|
False
|
2
|
1
|
Taulukko 92: Esimerkki ObjectGroup-taulun sisällöstä.
Taulu monikielistää ObjectGroup-taulun. Taulu sisältää seuraavat kentät:
Deleted
|
ilmoittaa,
onko tietue merkitty poistetuksi.
|
ObjectGroupID
|
määrittelee
monikielistettävän kohteen.
|
LanguageID
|
määrittelee
käytettävän kielen.
|
Name
|
on
kohteen nimi.
|
Abbreviation
|
on
kohteelle annettu lyhenne.
|
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki taulun sisällöstä on taulukossa 93.
Deleted
|
ObjectGroupID
|
LanguageID
|
Name
|
Abbreviation
|
False
|
1
|
1
|
Alle
16-v.
|
A
|
False
|
2
|
1
|
Kaikille
|
K
|
Taulukko 93: Esimerkki ObjectGroupLang-taulun sisällöstä.
Taulussa määritellään, mitkä ObjectGroup-taulun alkioista määrittelevät kurssia. Taulu sisältää seuraavat kentät:
Deleted
|
ilmoittaa,
onko tietue merkitty poistetuksi.
|
ObjectGroupID
|
kertoo
mistä määrittelevästä alkiosta on kyse.
|
CourseInstanceID
|
määrittelee
kyseessäolevan kurssin.
|
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki taulun sisällöstä on taulukossa 94.
Deleted
|
ObjectGroupID
|
CourseInstanceID
|
False
|
1
|
1
|
False
|
8
|
1
|
Taulukko 94: Esimerkki CourseObjectGroup-taulun sisällöstä.
Taulussa määritellään erilaisia vaikeustasoja kursseille. Taulu sisältää seuraavat kentät:
Deleted
|
ilmoittaa,
onko tietue merkitty poistetuksi.
|
LevelID
|
on
taulun avainkenttä.
|
Esimerkki taulun sisällöstä on taulukossa 95.
Deleted
|
LevelID
|
False
|
1
|
False
|
2
|
Taulukko 95: Esimerkki Level-taulun sisällöstä.
Taulussa monikielistetään kurssien tasot (luku 4.52). Taulu sisältää seuraavat kentät:
Deleted
|
ilmoittaa,
onko tietue merkitty poistetuksi.
|
LevelID
|
määrittelee
monikielistettävän tason.
|
LanguageID
|
on
käytettävä kieli.
|
Name
|
on
tason nimi käytetyllä kielellä.
|
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki taulun sisällöstä on taulukossa 96.
Deleted
|
LevelID
|
LanguageID
|
Name
|
False
|
1
|
1
|
Perustaso
|
False
|
2
|
1
|
Keskitaso
|
Taulukko 96: Esimerkki LevelTranslation-taulun sisällöstä.
Lisäksi Halko-projektissa tarvittiin taulut opetettavien aineiden määrittelyyn sekä kurssien rahalähteiden määrittämiseen. Aineiden määrittelyyn olisi Kotka-järjestelmässä ollut jo opinnäytemoduulissa, mutta koska Halko-projektissa ei tarvittu sieltä mitään muuta, toteutettiin tätä varten oma taulurakenne.
Taulu määrittelee opetettavat aineet. Taulu sisältää seuraavat kentät:
Deleted
|
ilmoittaa,
onko tietue merkitty poistetuksi.
|
SubjectID
|
on
taulun avainkenttä.
|
Esimerkki taulun sisällöstä on taulukossa 97.
Deleted
|
SubjectID
|
False
|
1
|
False
|
2
|
Taulukko 97: Esimerkki Subject-taulun sisällöstä.
Taulu monikielistää Subject-taulun. Taulu sisältää seuraavat kentät:
Deleted
|
ilmoittaa,
onko tietue merkitty poistetuksi.
|
SubjectID
|
määrittelee
kyseessäolevan aineen.
|
LanguageID
|
määrittelee
kielen.
|
Name
|
on
aineen nimi.
|
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki taulun sisällöstä on taulukossa 98.
Deleted
|
SubjectID
|
LanguageID
|
Name
|
False
|
1
|
1
|
Matematiikka
|
False
|
2
|
1
|
Englanti
|
Taulukko 98: Esimerkki SubjectTranslation-taulun sisällöstä.
Taulu määrittelee tietyllä kurssilla opetettavan aineen. Taulu sisältää seuraavat kentät:
Deleted
|
ilmoittaa,
onko tietue merkitty poistetuksi.
|
CourseID
|
määrittelee
kyseessäolevan kurssin.
|
SubjectID
|
määrittelee
kurssilla opetettavan aineen.
|
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki taulun sisällöstä on taulukossa 99.
Deleted
|
CourseID
|
SubjectID
|
False
|
|
|
False
|
|
|
Taulukko 99: Esimerkki CourseSubject-taulun sisällöstä.
Tällä taululla voidaan määritellä eri organisaatioissa opettavat aineet. Taulu sisältää seuraavat kentät:
Deleted
|
ilmoittaa,
onko tietue merkitty poistetuksi.
|
OrganisationID
|
määrittelee
organisaation, jonka aineesta on kyse.
|
SubjectID
|
määrittelee
opetettavan aineen.
|
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki taulun sisällöstä on taulukossa 100.
Deleted
|
OrganisationID
|
SubjectID
|
False
|
1
|
1
|
False
|
1
|
2
|
Taulukko 100: Esimerkki SubjectOnOrg-taulun sisällöstä.
Taulussa määritellään rahalähteet kursseille. Rahalähteet ovat maksajaorganisaatioita ja samalla kurssilla voi olla useita rahalähteitä. Taulu sisältää seuraavat kentät:
Deleted
|
ilmoittaa,
onko tietue merkitty poistetuksi.
|
OrganisationID
|
määrittelee
maksajaorganisaation.
|
CourseInstanceID
|
määrittelee
sen kurssi-instanssin, jonka rahalähteestä on kyse.
|
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki taulun sisällöstä on taulukossa 101.
Deleted
|
OrganisationID
|
CourseInstanceID
|
False
|
|
|
False
|
|
|
Taulukko 101: Esimerkki CourseFundingOrganisation-taulun sisällöstä.
Luvussa esitellään Koppelo-projektin luomat taulut opinnäytteiden hallintaosaan. Kotka-projektin luoma taulurakenne hylättiin toisaalta vanhentuneena ja toisaalta joidenkin pienten epäloogisuuksien vuoksi. Koppelo-projektin suunnittelema ER-kaavio on esitetty kuvassa 6.
Koppelo-sovellukseen luodut taulut käyttävät Kotka-tietokannan tauluja henkilö-, kurssi- ja organisaatiohallinnan puolelta. Henkilöhallinnan puolelta (luku 3) yhteys tarvitaan luonnollisesti henkilöiden liittämiseksi opinnäytteisiin. Toisaalta henkilöhallinnan puolta tarvitaan myös oikeustasojen määräämiseen Koppelo-sovelluksessa.
Kurssikirjanpidon puolta (luku 4) tarvitaan liittämään opinnäyte määrättyyn kurssikoodiin. Organisaatioiden hallinnan puolta (luku 2) on hieman kehitetty Koppelo-sovelluksessa toteuttamalla uusi taulu laitosten linjojen esittämiseen.
Kuvassa 6 on esitetty opinnäytteiden hallintaan tarvittavat lisätaulut. ER-kaaviossa on nimetty suurin osa Koppelo-sovelluksen tarvitsemista tauluista ja vain muutamat taulut esiintyvät kaaviossa MtoM-suhteina. Nämä MtoM-suhteet on mainittu kyseisten taulujen esittelyjen kohdalla.
Suhteet muuhun Kotka-järjestelmän tietokantaan on merkitty ER-kaavioon asettamalla muistilappu sellaisten taulujen kohdalle, jotka kuuluvat jo olemassaolevaan kantaan.
Kaikki opinnäytteisiin liittyvät käännöstaulut ( Translation) on merkitty ER-kaaviossa pienenä pallona käännöstä vastaavan taulun päässä. Pallo tarkoittaa relaatiota kyseisen taulun ja Kotka-kannan Language-taulun (luku 3.13) välillä. Relaatioon liittyy käännös, joka esiintyy taulussa nimellä Name. Kyseinen notaatio esiintyy muissakin Kotka-järjestelmän tietokantasuunnitelmissa (kuvat 1, 2, 3, 4 ja 5). Ratkaisulla säästetään huomattavasti tilaa ER-kaavioissa.
Taulut on nimetty käyttötarkoituksen mukaan. Lähes kaikkien taulujen nimiin liittyy opinnäytettä tarkoittava etuliite Assignment tai Ass, jotta opinnäytekokonaisuuden muodostavat taulut olisi helposti erotettavissa muista KOTKA-tietokannan tauluista. Etuliitettä Assignment käytetään silloin, kun taulun nimen loppuosa muodostuu yhdestä lyhyestä sanasta. Lyhennettä Ass käytetään useampiosaisten tai muutoin pitkien nimien yhteydessä. Jälkiliite Translation taulun perässä ilmaisee, että kyseisessä taulussa säilytetään ko. tiedon käännöksiä.
Taulujen ensisijaiset avaimet (engl. primary key ) on nimetty lisäämällä taulun nimeen perään kirjaimet PK. Toissijaiset avaimet (engl. foreign key ) on nimetty käyttämällä taulun nimen jäljessä kirjaimia FK ja kyseisen kentän kolmea ensimmäistä kirjainta. Joissain harvoissa tapauksissa taulussa on kaksi toissijaista viiteavainta, joiden nimi alkaa samoilla kirjaimilla. Tällöin on sääntöä hieman sovellettu.
Luvussa esitellään opinnäytteiden hallinnoimiseksi tarkoitettuja vakiotauluja. Kyseiset taulut sisältävät pääosin KOPPELO-sovelluksen kannalta staattista ylläpitäjän asettamaa tietoa.
AssignmentType-taulu yhdessä AssTypeTranslation-taulun kanssa muodostaa luettelon kaikista tietokantaan tallennettavista opinnäytetyypeistä. Järjestelmän ylläpitäjän vastuulla on tuottaa tauluun käyttäjien tarvitsema sisältö. Taulussa AssignmentType on kunkin opinnäytetyypin id-numerot ja taulussa AssTypeTranslation on käännökset opinnäytetyypeille.
Taulun AssignmentType rakenne ja kentät on kuvattu alla. Tauluun ei liity relaatioita.
Deleted kertoo, onko opinnäytetyyppi poistettu taulusta.
TypeID on opinnäytetyypin id ja samalla taulun avainkenttä.
DefaultTimeInDB ilmaisee, kuinka kauan kyseistä opinnäytetyyppiä oleva aihe säilytetään tietokannassa ellei käyttäjä anna muuta aikaa. Oletusaika annetaan vuorokausina.
MaxTimeInDB pisimmän mahdollisen ajan, joka kyseisestä tyyppiä oleva opinnäytteen aihe säilytetään tietokannassa. Maksimiaika annetaan vuorokausina.
Taulun AssTypeTranslation rakenne, kentät ja relaatiot muihin tauluihin on esitetty alla.
Deleted kertoo, onko käännös poistettu taulusta.
TypeID on opinnäytetyypin id ja samalla osa taulun perusavainta. Kentän relaatio tauluun AssignmentType liittää käännöksen yksittäiseen opinnäytteeseen.
LanguageID on käytetyn kielen id ja samalla osa taulun perusavainta. Relaatio Language-tauluun liittää käännökseen jonkin Kotka-kannan kielen.
Name sisältää opinnäytteen tyypin määritellyllä kielellä.
Taulukoissa 5.1 ja 5.2 on esimerkki taulujen käytöstä:
Deleted
|
TypeID
|
DefaultTimeInDB
|
MaxTimeInDB
|
False
|
1
|
90
|
180
|
False
|
2
|
90
|
180
|
Taulukko 5.1: Esimerkki AssignmentType-taulun sisällöstä.
Deleted
|
TypeID
|
LanguageID
|
Name
|
False
|
1
|
2
|
Harjoitustyö
|
False
|
2
|
2
|
Cum
laude työprojekti
|
Taulukko 5.2: Esimerkki AssTypeTranslation-taulun sisällöstä.
StudyLine-taulu yhdessä StudyLineTranslation-taulun kanssa muodostaa luettelon kaikista tietokantaan tallennettavista laitosten linjoista. Taululle on tarvetta myös Koppelo-projektin ulkopuolisissa yhteyksissä (esimerkiksi keväällä 2002 toteutettava Uraani-projekti käyttää kurssien linjojen käsittelyyn samaa taulua). Tämän vuoksi kyseistä taulua ei ole nimetty Koppelo-sovelluksen tauluille yleiseen Assignment-tyyliin.
Taulun StudyLine rakenne, kentät ja relaatiot muihin tauluihin on esitetty alla.
Deleted kertoo, onko linja poistettu taulusta.
LineID on linjan id ja samalla taulun avainkenttä.
OrganisationID ilmoittaa laitoksen id:n. Tämä relaatio liittää linjan tiettyyn laitokseen. Kenttä viittaa Organisation-tauluun.
Taulun StudyLineTranslation rakenne, kentät ja relaatiot muihin tauluihin on esitetty alla.
Deleted kertoo, onko käännös poistettu taulusta.
LineID on linjan id ja samalla osa taulun perusavainta. Kentän relaatio tauluun StudyLine liittää käännöksen yksittäiseen linjaan.
LanguageID on käytetyn kielen id ja samalla osa taulun perusavainta. Relaatio Language-tauluun liittää käännökseen jonkin Kotka-kannan kielen.
Name sisältää linjan nimen määritellyllä kielellä.
Taulukoissa 5.3 ja 5.4 on esimerkki taulujen käytöstä:
Deleted
|
LineID
|
OrganisationID
|
False
|
1
|
3
|
False
|
2
|
3
|
Taulukko 5.3: Esimerkki StudyLine-taulun sisällöstä.
Deleted
|
LineID
|
LanguageID
|
Name
|
False
|
1
|
2
|
Ohjelmistotekniikka
|
False
|
2
|
2
|
Sulautetut
järjestelmät
|
Taulukko 5.4: Esimerkki StudyLineTranslation-taulun sisällöstä.
AssignmentRole-taulu yhdessä AssRoleTranslation-taulun kanssa muodostaa luettelon kaikista tietokantaan tallennettavista opinnäytteiden rooleista. Kotka-kannassa ennestään olevia rooleja ei ollut mielekästä käyttää, sillä opinnäytteisiin liittyy usein eri tyyppisiä rooleja kuin luentokursseihin (esimerkiksi tarkastaja, hyväksyjä). Taulussa AssignmentRole on kunkin roolin id-numerot ja taulussa AssRoleTranslation on käännökset roolinimikkeille.
Taulun AssignmentRole rakenne, kentät ja relaatiot muihin tauluihin on esitetty alla.
Deleted kertoo, onko rooli poistettu taulusta.
RoleID on roolin id ja samalla taulun avainkenttä.
Taulun AssRoleTranslation rakenne, kentät ja relaatiot muihin tauluihin on esitetty alla.
Deleted kertoo, onko käännös poistettu taulusta.
RoleID on roolin id ja samalla osa taulun perusavainta. Kentän relaatio tauluun AssignmentRole liittää käännöksen yksittäiseen rooliin.
LanguageID on käytetyn kielen id ja samalla osa taulun perusavainta. Relaatio Language-tauluun liittää käännökseen jonkin Kotka-kannan kielen.
Name sisältää roolin nimen määritellyllä kielellä.
Taulukoissa 5.5 ja 5.6 on esimerkki taulujen käytöstä:
Deleted
|
RoleID
|
False
|
1
|
False
|
2
|
Taulukko 5.5: Esimerkki AssignmentRole-taulun sisällöstä.
Deleted
|
RoleID
|
LanguageID
|
Name
|
False
|
1
|
2
|
Opiskelija
|
False
|
2
|
2
|
Ohjaaja
|
Taulukko 5.6: Esimerkki AssRoleTranslation-taulun sisällöstä.
AssignmentPhase-taulu yhdessä AssPhaseTranslation-taulun kanssa muodostaa luettelon kaikista tietokantaan tallennettavista opinnäytteiden vaiheista. Opinnäytteiden hallintaan liittyy kaksi erilaista vaihekäsitettä: opinnäytteen vaihe ja työtehtävän vaihe. Eri sisällöstään huolimatta molemmat vaihekäsitteet tallennetaan samaan tauluun AssignmentPhase. Taulun rakenne ja kentät on kuvattu alla:
Deleted kertoo, onko vaihe poistettu taulusta.
RoleID on vaiheen id ja samalla taulun avainkenttä.
PhaseGroup -kentän avulla voidaan jakaa vaiheita erilaisiin ryhmiin. Näin saadaan esimerkiksi opinnäytteen vaiheet erotettua työtehtävien vaiheista.
Taulun AssPhaseTranslation rakenne, kentät ja relaatiot muihin tauluihin on esitetty alla.
Deleted kertoo, onko käännös poistettu taulusta.
PhaseID on vaiheen id ja samalla osa taulun perusavainta. Kentän relaatio tauluun AssignmentPhase liittää käännöksen yksittäiseen vaiheeseen.
LanguageID on käytetyn kielen id ja samalla osa taulun perusavainta. Relaatio Language-tauluun liittää käännökseen jonkin Kotka-kannan kielen.
Name sisältää roolin nimen määritellyllä kielellä.
Taulukoissa 5.7 ja 5.8 on esimerkki taulujen käytöstä:
Deleted
|
PhaseID
|
PhaseGroup
|
False
|
1
|
1
|
False
|
2
|
1
|
False
|
3
|
2
|
Taulukko 5.7: Esimerkki AssignmentPhase-taulun sisällöstä.
Deleted
|
PhaseID
|
LanguageID
|
Name
|
False
|
1
|
2
|
Tekeillä
|
False
|
2
|
2
|
Hyväksytty
|
False
|
3
|
2
|
Tarkastettavana
|
Taulukko 5.8: Esimerkki AssPhaseTranslation-taulun sisällöstä.
AssEventType-taulu yhdessä AssEventTypeTranslation-taulun kanssa muodostaa luettelon kaikista tietokantaan tallennettavista opinnäytteiden tapahtumien tyypeistä. Tapahtuman tyyppi eroaa loogiselta merkitykseltään työtehtävän vaiheesta, ja tämän vuoksi nämä kaksi käsitettä on pidetty erillisissä tauluissa.
Taulun AssEventType rakenne ja kentät on kuvattu alla. Tauluun ei liity relaatioita.
Deleted kertoo, onko tapahtumatyyppi poistettu taulusta.
TypeID on tapahtuman tyypin id ja samalla taulun avainkenttä.
Taulun AssEventTypeTranslation rakenne, kentät ja relaatiot muihin tauluihin on esitetty alla.
Deleted kertoo, onko käännös poistettu taulusta.
TypeID on tapahtuman tyypin id ja samalla osa taulun perusavainta. Kentän relaatio tauluun AssEventType liittää käännöksen yksittäiseen tapahtumatyyppiin.
LanguageID on käytetyn kielen id ja samalla osa taulun perusavainta. Relaatio Language-tauluun liittää käännökseen jonkin Kotka-kannan kielen.
Name sisältää tapahtuman tyypin nimen määritellyllä kielellä.
Taulukoissa 5.9 ja 5.10 on esimerkki taulujen käytöstä:
Deleted
|
TypeID
|
False
|
1
|
False
|
2
|
False
|
3
|
False
|
4
|
Taulukko 5.9: Esimerkki AssEventType-taulun sisällöstä.
Deleted
|
TypeID
|
LanguageID
|
Name
|
False
|
1
|
2
|
Ohjaus
|
False
|
2
|
2
|
Keskustelu
|
False
|
3
|
2
|
Arviointi
|
False
|
4
|
2
|
Oppilaan
raportti
|
Taulukko 5.10: Esimerkki AssEventTypeTranslation-taulun sisällöstä.
AssignmentDetail-taulu yhdessä AssDetailTranslation-taulun kanssa muodostaa kokoelman kaikista opinnäytteiden tiedoista. On huomattava, että tieto ei suoraan liity yksittäiseen aiheeseen tai opinnäytteeseen, vaan liitetään näihin erillisten liitostaulujen avulla (katso luvut 5.3.2 ja 5.3.7). Näin voidaan käyttää esimerkiksi samaa kuvausta useassa opinnäytteessä siten, että varsinainen data tallennetaan kantaan vain kerran.
Taulun AssignmentDetail rakenne, kenttien merkitys ja relaatiot muihin tauluihin on kuvattu alla:
Deleted kertoo, onko tieto poistettu taulusta.
DetailID on tiedon id ja samalla taulun avainkenttä.
TypeID ilmoittaa tiedon tyypin id:n. Relaatio tauluun DescriptionType ilmoittaa, minkä tyyppisestä tiedosta on kyse.
Taulun AssDetailTranslation rakenne, kentät ja relaatiot muihin tauluihin on esitetty alla.
Deleted kertoo, onko käännös poistettu taulusta.
DetailID on tiedon id ja samalla osa taulun perusavainta. Kentän relaatio tauluun AssignmentDetail liittää käännöksen yksittäiseen tietoon.
LanguageID on käytetyn kielen id ja samalla osa taulun perusavainta. Relaatio Language-tauluun liittää käännökseen jonkin Kotka-kannan kielen.
Name sisältää tiedon määritellyllä kielellä.
Taulukoissa 5.11 ja 5.12 on esimerkki taulujen käytöstä:
Deleted
|
DetailID
|
TypeID
|
False
|
1
|
1
|
False
|
2
|
8
|
Taulukko 5.11: Esimerkki AssignmentDetail-taulun sisällöstä.
Deleted
|
DetailID
|
LanguageID
|
Name
|
False
|
1
|
2
|
CD-rekisteri
|
False
|
2
|
2
|
Ohjelmointi-kurssin
harjoi-
tustyön
kestosuosikkiaihe on
CD-rekisteri...
|
Taulukko 5.12: Esimerkki AssDetailTranslation-taulun sisällöstä.
AssignmentKeyword-taulu yhdessä AssKeywordTranslation-taulun kanssa muodostaa kokoelman kaikista opinnäytteiden avainsanoista. On huomattava, että kuten opinnäytteiden yleisten tietojen tapauksessa, niin myös avainsanoissa tieto ei suoraan liity yksittäiseen aiheeseen tai opinnäytteeseen vaan liitetään näihin erillisten liitostaulujen avulla (katso luvut 5.3.3 ja 5.3.8). Näin sama avainsana tallennetaan vain kerran tietokantaan.
Pitämällä avainsanat erillään AssignmentDetail-taulusta sen sijaan, että avainsanat olisivat vain yksi ko. taulun mukainen tiedon tyyppi, toivotaan että haut nopeutuisivat ja avainsanojen käyttö olisi mahdollisimman tehokasta.
Taulun AssignmentKeyword rakenne ja kenttien merkitys on kuvattu alla. Tauluun ei liity relaatioita.
Deleted kertoo, onko avainsana poistettu taulusta.
KeywordID on avainsanan id ja samalla taulun avainkenttä.
Taulun AssKeywordTranslation rakenne, kentät ja relaatiot muihin tauluihin on esitetty alla.
Deleted kertoo, onko käännös poistettu taulusta.
KeywordID on avainsanan id ja samalla osa taulun perusavainta. Kentän relaatio tauluun AssignmentKeyword liittää käännöksen yksittäiseen avainsanaan.
LanguageID on käytetyn kielen id ja samalla osa taulun perusavainta. Relaatio Language-tauluun liittää käännökseen jonkin Kotka-kannan kielen.
Name sisältää avainsanan määritellyllä kielellä.
Taulukoissa 5.13 ja 5.14 on esimerkki taulujen käytöstä:
Deleted
|
KeywordID
|
False
|
1
|
False
|
2
|
Taulukko 5.13: Esimerkki AssignmentKeyword-taulun sisällöstä.
Deleted
|
KeywordID
|
LanguageID
|
Name
|
False
|
1
|
2
|
C++
|
False
|
2
|
2
|
JSP
|
Taulukko 5.14: Esimerkki AssKeywordTranslation-taulun sisällöstä.
Tässä luvussa esitellään opinnäytteeseen läheisemmin liittyviä tauluja. Koska opinnäytteen luomisprosessi alkaa aiheen ehdottamisesta, tarkastellaan luvussa 5.3.1 taulua AssignmentOriginal, jonne aihe-ehdotukset ja aiheet tallennetaan.
Suoritettavaksi otettu opinnäyte tallennetaan luvun 5.3.6 tauluun Assignment. Taulua AssignmentOriginal (luku 5.3.1) ei voida käyttää, sillä joissain opinnäytteissä (esimerkiksi harjoitustyöt) samasta aiheesta voi olla useampi erillinen opiskelija tai opiskelijaryhmä suorittamassa opinnäytettä, jolloin on turhaa tallentaa samoja tietoja opinnäytteen aiheeseen liittyen.
Henkilöt liitetään opinnäytteeseen taulun AssignmentRelatedPerson (luku 5.3.9) avulla. Kullekin henkilölle voidaan antaa opinnäytekohtaisesti oma rooli. Taulu on keskeisessä asemassa monissa opinnäytteeseen liittyvissä yhteyksissä, kuten tapahtuman lisääminen ja opiskelijan arvostelu.
Tauluun AssignmentOriginal tallennetaan kaikki opinnäytteiden aihe-ehdotukset ja merkinnät aihe-ehdotusten hyväksymisestä opinnäytteen aiheeksi. Tauluun tallennetaan vain kiinteästi aiheeseen liittyviä tietoja.
Opinnäytteeseen liittyvät "vapaavalintaisemmat" tiedot tallennetaan tämän taulun ulkopuolelle tauluihin AssOriginalRelDetail (luku 5.3.2), AssOriginalRelKeyword (luku 5.3.3), AssOriginalPosLine (luku 5.3.4) ja AssOriginalPosType (luku 5.3.5). Nämä tiedot on sijoitettu taulun ulkopuolelle siksi, että toisaalta niiden määrää yhtä aihe-ehdotusta kohti ei ole kiinnitetty, ja toisaalta sovellusta suunniteltaessa ei vielä osata ennustaa kaikkia mahdollisia tietoja, joita opinnäytteeseen halutaan liittää. Pitämällä tiedot täysin erillisissä tauluissa on tarkoitus saada aikaan joustavampi tietokanta uusien tietotyyppien lisäämiseen.
Taulun AssignmentOriginal rakenne, kenttien merkitys ja relaatiot muihin tauluihin on kuvattu alla:
Deleted kertoo, onko aihe(ehdotus) poistettu taulusta.
OriginalID on aiheen id ja samalla taulun avainkenttä.
ProposedDate on aiheen ehdotuspäivämäärä.
ProposedBy on aiheen ehdottajan id. Relaatio Kotka-kannan tauluun Person (luku 3.2) yhdistää aiheen ehdottajan tiettyyn Kotka-järjestelmän käyttäjään.
ilmoittaa aiheen hyväksymisen päivämäärän. Niin kauan, kun tässä kentässä on null-arvo, puhutaan aihe-ehdotuksesta.
AcceptedBy ilmoittaa aiheen hyväksyjän id:n. Relaatio Kotka-kannan tauluun Person (luku 3.2) yhdistää aiheen hyväksyjän tiettyyn Kotka-järjestelmän käyttäjään. Kentässä on arvo null niin kauan, kun aihe-ehdotusta ei ole hyväksytty.
ValidUntil ilmoittaa päivämäärän, johon saakka aihe säilytetään kannassa.
Available ilmaisee, kuinka moni opiskelija tai opiskelijaryhmä voi ottaa opinnäytteen työn alle.
Taulukossa 5.15 on esimerkki taulun käytöstä:
Deleted
|
OriginalID
|
ProposedDate
|
ProposedBy
|
False
|
1
|
15.5.2002
|
55
|
AcceptedDate
|
AcceptedBy
|
ValidUntil
|
Available
|
23.5.2002
|
4
|
30.9.2002
|
3
|
Taulukko 5.15: Esimerkki AssignmentOriginal-taulun sisällöstä.
Taulussa AssOriginalRelDetail liitetään opinnäytteen aiheeseen käyttäjän syöttämiä tietoja kuten otsikko- ja kuvaustiedot. Taulu näkyy kuvan 6 ER-kaaviossa MtoM-suhteena taulujen AssignmentOriginal (luku 5.3.1) ja AssignmentDetail (luku 5.2.6) välillä. Taulun AssOriginalRelDetail rakenne, kenttien merkitys ja relaatiot muihin tauluihin on kuvattu alla:
Deleted kertoo, onko relaatio poistettu taulusta.
OriginalID on aiheen id ja samalla osa taulun perusavainta. Relaatio tauluun AssignmentOriginal (luku 5.3.1) yhdistää aiheeseen kyseisen tiedon.
DetailID on tiedon id ja samalla osa taulun perusavainta. Viite tauluun AssignmentDetail (luku 5.2.6) yhdistää tiedon aiheeseen.
Taulukossa 5.16 on esimerkki taulun käytöstä:
Deleted
|
OriginalID
|
DetailID
|
False
|
1
|
1
|
False
|
1
|
2
|
Taulukko 5.16: Esimerkki AssOriginalRelDetail-taulun sisällöstä.
Taulussa AssOriginalRelKeyword liitetään opinnäytteen aiheeseen käyttäjän valitsemia avainsanoja. Taulu näkyy kuvan 6 ER-kaaviossa MtoM-suhteena taulujen AssignmentOriginal (luku 5.3.1) ja AssignmentKeyword (luku 5.2.7) välillä. Taulun rakenne, kenttien merkitys ja relaatiot muihin tauluihin on kuvattu alla.
Deleted kertoo, onko relaatio poistettu taulusta.
OriginalID on aiheen id ja samalla osa taulun perusavainta. Relaatio tauluun AssignmentOriginal (luku 5.3.1) yhdistää aiheeseen kyseisen avainsanan.
KeywordID on avainsanan id ja samalla osa taulun perusavainta. Viite tauluun AssignmentKeyword (luku 5.2.7) yhdistää avainsanan aiheeseen.
Taulukossa 5.17 on esimerkki taulun käytöstä:
Deleted
|
OriginalID
|
KeywordID
|
False
|
1
|
1
|
False
|
1
|
2
|
Taulukko 5.17: Esimerkki AssOriginalRelKeyword-taulun sisällöstä.
Taulussa AssOriginalPosLine liitetään opinnäytteen aiheeseen käyttäjän valitsemia linjoja. On huomattava, että opinnäytteen aiheeseen voidaan liittää useita linjavaihtoehtoja, mutta varsinaiseen opinnäytteeseen liittyy enintään yksi linja.
Taulu näkyy kuvan 6 ER-kaaviossa MtoM-suhteena taulujen AssignmentOriginal (luku 5.3.1) ja StudyLine (luku 5.2.2) välillä. Taulun rakenne, kenttien merkitys ja relaatiot muihin tauluihin on kuvattu alla.
Deleted kertoo, onko relaatio poistettu taulusta.
OriginalID on aiheen id ja samalla osa taulun perusavainta. Relaatio tauluun AssignmentOriginal (luku 5.3.1) yhdistää aiheeseen kyseisen linjan.
LineID on linjan id ja samalla osa taulun perusavainta. Viite tauluun StudyLine (luku 5.2.2) yhdistää linjan aiheeseen.
Taulukossa 5.18 on esimerkki taulun käytöstä:
Deleted
|
OriginalID
|
LineID
|
False
|
1
|
1
|
False
|
1
|
2
|
Taulukko 5.18: Esimerkki AssOriginalPosLine-taulun sisällöstä.
Taulussa AssOriginalPosType liitetään opinnäytteen aiheeseen käyttäjän valitsemia opinnäytetyyppejä. On huomattava, että opinnäytteen aiheeseen voidaan liittää useita opinnäytetyyppivaihtoehtoja, mutta varsinaiseen opinnäytteeseen liittyy ainoastaan yksi opinnäytteen tyyppi.
Taulu näkyy kuvan 6 ER-kaaviossa MtoM-suhteena taulujen AssignmentOriginal (luku 5.3.1) ja AssignmentType (luku 5.2.1) välillä. Taulun rakenne, kenttien merkitys ja relaatiot muihin tauluihin on kuvattu alla.
Deleted kertoo, onko relaatio poistettu taulusta.
OriginalID on aiheen id ja samalla osa taulun perusavainta. Relaatio tauluun AssignmentOriginal (luku 5.3.1) yhdistää aiheeseen kyseisen opinnäytetyypin.
TypeID on opinnäytetyypin id ja samalla osa taulun perusavainta. Viite tauluun AssignmentType (luku 5.2.1) yhdistää tyypin aiheeseen.
Taulukossa 5.19 on esimerkki taulun käytöstä:
Deleted
|
OriginalID
|
TypeID
|
False
|
1
|
1
|
False
|
1
|
2
|
Taulukko 5.19: Esimerkki AssOriginalPosType-taulun sisällöstä.
Tauluun Assignment tallennetaan kaikki aiheista aloitetut opinnäytteiden suoritukset. Tauluun tallennetaan vain kiinteästi opinnäytteeseen liittyviä tietoja ja jotkin luonteeltaan vapaavalintaisemmista tiedoista tallennetaan tämän taulun ulkopuolelle tauluihin AssignmentRelDetail (luku 5.3.7), AssignmentRelKeyword (luku 5.3.8), AssignmentRelatedPerson (luku 5.3.9) ja AssignmentTaskRelation (luku 5.4.5).
Taulujen AssignmentRelDetail (luku 5.3.7) ja AssignmentRelKeyword (luku 5.3.8) sisältö lienee lähes sama kuin opinnäytteen aiheeseen liittyvien taulujen AssOriginalRelDetail (luku 5.3.2) ja AssOriginalRelKeyword (luku 5.3.3) sisältö. Oleellista on se, että hajauttamalla tieto kahteen eri tauluun voidaan opinnäytteeseen liittyviä otsikko- ja kuvaustietoja muuttaa ilman, että vastaavaan aiheeseen liittyvät otsikko- ja kuvaustiedot muuttuvat. Tämä on tärkeää etenkin niissä tapauksissa, joissa useampi opiskelijaryhmä tekee opinnäytettä samasta aiheesta. Siten alkuperäiseen aiheeseen liittyvät tiedot voidaan säilytettään kannassa, joten tietojen korjailun ja muuttamisen jälkeenkin nämä tiedot ovat saatavilla.
Taulun Assignment rakenne, kenttien merkitys ja relaatiot muihin tauluihin:
Deleted kertoo, onko opinnäyte poistettu taulusta.
AssignmentID on opinnäytteen id ja samalla taulun avainkenttä.
OriginalID ilmoittaa alkuperäisen aiheen id:n ja viittaa tauluun AssignmentOriginal (luku 5.3.1).
BeginDate ilmoittaa opinnäytteen aloituspäivämäärän.
FinishedDate ilmoittaa opinnäytteen valmistumispäivämäärän. Niin kauan kun kentässä on null-arvo, on opinnäytteen suoritus kesken.
AssignmentTypeID ilmoittaa opinnäytteen tyypin id:n. Relaatio tauluun AssignmentType (luku 5.2.1) yhdistää opinnäytteeseen tietyn opinnäytetyypin.
LineID ilmoittaa opinnäytteen linjan id:n. Relaatio tauluun StudyLine (luku 5.2.2) yhdistää opinnäytteen tietylle laitoksen linjalle.
CourseID ilmoittaa kurssin id:n. Tällä Kotka-kannan tauluun Course (luku 4.2) viittaavalla kentällä saadaan opinnäytteeseen liitettyä kurssikoodi esimerkiksi opinnäytteen arvostelemista varten.
PhaseID ilmoittaa opinnäytteen vaiheen id:n. Relaatio tauluun AssignmentPhase (luku 5.2.4) yhdistää opinnäytteeseen tietyn vaiheen.
WarningTime on muistutusväli, joka saa enintään kulua kahden opinnäytteeseen liittyvän tapahtuman välillä. Jakson pituus esitetään vuorokausina.
PublicGroup ilmoittaa julkisuusryhmän, jolla voidaan asettaa opinnäytteen julkisuusarvo. Asettamalla eri julkisuusryhmiä voidaan osa opinnäytteistä rajata salaisiksi.
Taulukossa 5.20 on esimerkki taulun käytöstä:
Deleted
|
AssignmentID
|
OriginalID
|
BeginDate
|
FinishedDate
|
False
|
1
|
1
|
2.5.2002
|
Null
|
False
|
2
|
1
|
5.5.2002
|
30.5.2002
|
AssignmentTypeID
|
LineID
|
CourseID
|
PhaseID
|
WarningTime
|
PublicGroup
|
3
|
1
|
1
|
1
|
10
|
1
|
1
|
1
|
2
|
4
|
30
|
1
|
Taulukko 5.20: Esimerkki Assignment-taulun sisällöstä.
Taulussa AssignmentRelDetail liitetään opinnäytteeseen käyttäjän syöttämiä tietoja. Taulu näkyy kuvan 6 ER-kaaviossa MtoM-suhteena taulujen Assignment (luku 5.3.6) ja AssignmentDetail (luku 5.2.6) välillä. Taulun AssignmentRelDetail rakenne, kenttien merkitys ja relaatiot muihin tauluihin on kuvattu alla.
Deleted kertoo, onko relaatio poistettu taulusta.
AssignmentID on aiheen id ja samalla osa taulun perusavainta. Relaatio tauluun Assignment (luku 5.3.1) yhdistää opinnäytteesen kyseisen tiedon.
DetailID on tiedon id ja samalla osa taulun perusavainta. Viite tauluun AssignmentDetail (luku 5.2.6) yhdistää tiedon opinnäytteeseen.
AllowUpdate ilmaisee, saako DetailID:tä vastaavaa arvoa (käännöstä) muuttaa. Arvona on joko tosi tai epätosi.
Taulukossa 5.21 on esimerkki taulun käytöstä:
Deleted
|
AssignmentID
|
DetailID
|
AllowUpdate
|
False
|
1
|
1
|
False
|
False
|
1
|
3
|
true
|
Taulukko 5.21: Esimerkki AssignmentRelDetail-taulun sisällöstä.
Taulussa AssignmentRelKeyword liitetään opinnäytteeseen käyttäjän valitsemia avainsanoja. Taulu näkyy kuvan 6 ER-kaaviossa MtoM-suhteena taulujen Assignment (luku 5.3.6) ja AssignmentKeyword (luku 5.2.7) välillä. Taulun rakenne, kenttien merkitys ja relaatiot muihin tauluihin on kuvattu alla.
Deleted kertoo, onko relaatio poistettu taulusta.
AssignmentID on aiheen id ja samalla osa taulun perusavainta. Relaatio tauluun Assignment (luku 5.3.6) yhdistää opinnäytteesen kyseisen avainsanan.
KeywordID on avainsanan id ja samalla osa taulun perusavainta. Viite tauluun AssignmentDetail (luku 5.2.7) yhdistää avainsanan opinnäytteeseen.
Taulukossa 5.22 on esimerkki taulun käytöstä:
Deleted
|
AssignmentID
|
KeywordID
|
False
|
1
|
1
|
False
|
1
|
2
|
Taulukko 5.22: Esimerkki AssignmentRelKeyword-taulun sisällöstä.
Taulussa AssignmentRelatedPerson liitetään opinnäytteeseen Kotka-järjestelmän käyttäjiä. Henkilöille liitetään aina rooli kyseisen opinnäytteen suorituksessa. Taulun rakenne, kenttien merkitys ja relaatiot muihin tauluihin on kuvattu alla.
Deleted kertoo, onko relaatio poistettu taulusta.
RelationID on relaation id ja samalla taulun avainkenttä.
AssignmentID on opinnäytteen id. Viittaa tauluun Assignment (luku 5.3.6), eli yhdistää relaation tiettyyn opinnäytteeseen.
PersonID ilmaisee henkilön id. Viittaa tauluun Person (luku 3.2) eli yhdistää tietyn henkilön relaatioon.
RoleID ilmaisee roolin id. Viittaa tauluun AssignmentRole (luku 5.2.3) eli yhdistää tietyn roolin relaatioon.
Taulukossa 5.23 on esimerkki taulun käytöstä:
Deleted
|
RelationID
|
AssignmentID
|
PersonID
|
RoleID
|
False
|
1
|
1
|
4
|
2
|
False
|
2
|
1
|
55
|
1
|
True
|
3
|
1
|
676
|
1
|
Taulukko 5.23: Esimerkki AssignmentRelatedPerson-taulun sisällöstä.
Luvussa esitetään opinnäytteen työtehtäviin liittyvät taulut sekä niiden väliset relaatiot. Työtehtävät muodostavat lähes itsenäisen kokonaisuuden Koppelo-sovelluksen taulurakenteessa. Työtehtävät voidaan luokitella erilaisiin ryhmiin ja edelleen työtehtävistä voidaan koostaa mallipohjien avulla suurempia tehtäväkokonaisuuksia. Näitä mallipohjia voidaan käyttää eräänlaisena pikavalintana työtehtävien liittämiseksi yksittäiseen opinnäytteeseen.
AssTaskCategory-taulu yhdessä AssTaskCategoryTranslation-taulun kanssa muodostaa luettelon kaikista tietokantaan tallennettavista opinnäytteiden työtehtävien luokitteluista. Luokittelut on esitetty taulussa AssTaskCategory ja niiden käännökset ovat taulussa AssTaskCategoryTranslation.
Taulun AssTaskCategory kentät ja kenttien merkitys on kuvattu alla. Tauluun ei liity relaatioita.
Deleted kertoo, onko luokittelu poistettu taulusta.
CategoryID on luokittelun id ja samalla taulun avainkenttä.
Taulun AssTaskCategoryTranslation rakenne, kentät ja relaatiot muihin tauluihin on esitetty alla.
Deleted kertoo, onko käännös poistettu taulusta.
CategoryID on luokittelun id ja samalla osa taulun perusavainta. Kentän relaatio tauluun AssTaskCategory liittää käännöksen yksittäiseen luokitteluun.
LanguageID on käytetyn kielen id ja samalla osa taulun perusavainta. Relaatio Language-tauluun liittää käännökseen jonkin Kotka-kannan kielen.
Name sisältää luokittelun määritellyllä kielellä.
Taulukoissa 5.24 ja 5.25 on esimerkki taulujen käytöstä:
Deleted
|
CategoryID
|
False
|
1
|
False
|
2
|
Taulukko 5.24: Esimerkki AssTaskCategory-taulun sisällöstä.
Deleted
|
CategoryID
|
LanguageID
|
Name
|
False
|
1
|
2
|
Suunnittelu
|
False
|
2
|
2
|
Toteutus
|
Taulukko 5.25: Esimerkki AssTaskCategoryTranslation-taulun sisällöstä.
AssignmentTask-taulu yhdessä AssTaskTranslation-taulun kanssa muodostaa luettelon kaikista tietokantaan tallennettavista opinnäytteiden työtehtävistä. Työtehtäviin liittyvään luokitteluun tarvittavat taulut on esitetty luvussa 5.4.1. Taulun AssignmentTask kentät, kenttien merkitys ja relaatiot on kuvattu alla.
Deleted kertoo, onko luokittelu poistettu taulusta.
TaskID on työtehtävän id ja samalla taulun avainkenttä.
CategoryID on on luokittelun id. Relaatio tauluun AssTaskCategory (luku 5.4.1) liittää työtehtävän johonkin työtehtävien luokitteluun.
Taulun AssTaskTranslation rakenne, kentät ja relaatiot muihin tauluihin on esitetty alla.
Deleted kertoo, onko käännös poistettu taulusta.
TaskID on työtehtävän id ja samalla osa taulun perusavainta. Kentän relaatio tauluun AssignmentTask liittää käännöksen yksittäiseen työtehtävään.
LanguageID on käytetyn kielen id ja samalla osa taulun perusavainta. Relaatio Language-tauluun liittää käännökseen jonkin Kotka-kannan kielen.
Name sisältää työtehtävän nimen määritellyllä kielellä.
Taulukoissa 5.26 ja 5.27 on esimerkki taulujen käytöstä:
Deleted
|
TaskID
|
CategoryID
|
False
|
1
|
1
|
False
|
2
|
1
|
Taulukko 5.26: Esimerkki AssTaskCategory-taulun sisällöstä.
Deleted
|
TaskID
|
LanguageID
|
Name
|
False
|
1
|
2
|
Projektisuunnitelma
|
False
|
2
|
2
|
Sovellussuunnitelma
|
Taulukko 5.27: Esimerkki AssTaskCategoryTranslation-taulun sisällöstä.
AssTaskTemplate-taulu yhdessä AssTaskTemplateTranslation-taulun kanssa muodostaa luettelon kaikista tietokantaan tallennettavista opinnäytteiden työtehtävien mallipohjista.
Taulun AssTaskTemplate kentät ja kenttien merkitys on kuvattu alla. Tauluun ei liity relaatioita.
Deleted kertoo, onko mallipohja poistettu taulusta.
TemplateID on mallipohjan id ja samalla taulun avainkenttä.
Taulun AssTaskTemplateTranslation rakenne, kentät ja relaatiot muihin tauluihin on esitetty alla.
Deleted kertoo, onko käännös poistettu taulusta.
TemplateID on mallipohjan id ja samalla osa taulun perusavainta. Kentän relaatio tauluun AssTaskTemplate liittää käännöksen yksittäiseen luokitteluun.
LanguageID on käytetyn kielen id ja samalla osa taulun perusavainta. Relaatio Language-tauluun liittää käännökseen jonkin Kotka-kannan kielen.
Name sisältää mallipohjan nimen määritellyllä kielellä.
Taulukoissa 5.28 ja 5.29 on esimerkki taulujen käytöstä:
Deleted
|
TemplateID
|
False
|
1
|
False
|
2
|
Taulukko 5.28: Esimerkki AssTaskTemplate-taulun sisällöstä.
Deleted
|
TemplateID
|
LanguageID
|
Name
|
False
|
1
|
2
|
Työprojekti
|
False
|
2
|
2
|
Ohjelmointi-kurssin harjoitustyö
|
Taulukko 5.29: Esimerkki AssTaskTemplateTranslation-taulun sisällöstä.
AssTaskTemplateRelation-taulussa yhdistetään opinnäytteen työtehtäviä haluttuihin mallipohjiin. Taulu näkyy kuvan 6 ER-kaaviossa MtoM-suhteena taulujen AssTaskTemplate (luku 5.4.3) ja AssignmentTask (luku 5.4.2) välillä. Taulun kentät, kenttien merkitys ja tauluun liittyvät relaatiot on esitetty alla.
Deleted kertoo, onko relaatio poistettu taulusta.
TemplateID ilmoittaa mallipohjan id:n ja on samalla osa taulun perusavainta.
TaskID ilmoittaa työtehtävän id:n ja on samalla osa taulun perusavainta. Kentän avulla työtehtävä liitetään mallipohjaan.
Kentän TemplateID relaatio tauluun AssTaskTemplate (luku 5.4.3) ja kentän TaskID relaatio tauluun AssignmentTask (luku 5.4.2) muodostavat yksiselitteisen linkin työtehtävän ja mallipohjan välille. Taulukossa 5.30 on esimerkki taulun käytöstä:
Deleted
|
TemplateID
|
TaskID
|
False
|
1
|
1
|
False
|
1
|
2
|
Taulukko 5.30: Esimerkki AssTaskTemplateRelation-taulun sisällöstä.
Taulussa AssignmentTaskRelation yhdistetään työtehtäviä yksittäisiin opinnäytteisiin. Samalla jokaiseen opinnäytteen työtehtävään liitetään vaihe. Taulu näkyy kuvat 6 ER-kaaviossa MtoM-suhteina taulujen Assignment (luku 5.3.6), AssignmentTask (luku 5.4.2) ja AssignmentPhase (luku 5.2.4) välillä. Taulun kentät, kenttien merkitys ja tauluun liittyvät relaatiot on esitetty alla.
Deleted kertoo, onko relaatio poistettu taulusta.
AssignmentID ilmaisee opinnäytteen id:n ja on samalla osa taulun perusavainta. Relaatio tauluun Assignment (luku 5.3.6) liittää työtehtävän opinnäytteeseen.
TaskID ilmaisee työtehtävän id:n ja on samalla osa taulun perusavainta. Viittaa tauluun AssignmentTask (luku 5.4.2).
PhaseID ilmaisee vaiheen id:n. Relaatio AssignmentPhase -tauluun (luku 5.2.4) liittää työtehtävään yksittäisen vaiheen.
Taulun rivien muodostamisessa voidaan käyttää apuna taulun AssTaskTemplateRelation (luku 5.4.4) rivejä. Taulukossa 5.31 on esimerkki taulun käytöstä:
Deleted
|
AssignmentID
|
TaskID
|
PhaseID
|
False
|
1
|
1
|
3
|
False
|
1
|
2
|
5
|
Taulukko 5.31: Esimerkki AssTaskTemplate-taulun sisällöstä.
Opinnäytteeseen liittyvät tapahtumat tallennetaan tauluun AssignmentEvent (luku 5.5.1). Opinnäytteen arvostelu voidaan nähdä yhtenä tapahtumana kyseisessä taulussa, mutta tämän lisäksi opiskelijoiden henkilökohtaiseen arvointiin voidaan käyttää taulua AssignmentFinished (luku 5.5.3). Erona voidaankin pitää, että tauluun AssignmentEvent annettu arviointi koskee koko opinnäytettä työstänyttä opiskelijaryhmää.
Opinnäytteisiin liittyvien tapahtumien lukemista seurataan taulussa UnreadMessages (luku 5.5.2). Uuden tapahtuman lisääminen AssignmentEvent-tauluun synnyttää tähän tauluun rivin jokaista opinnäytteeseen liitettyä henkilöä kohden.
Tauluun AssignmentEvent tallennetaan opinnäytteeseen liittyvät tapahtumat. Tapahtumat voidaan luokitella taulussa AssEventType (luku 5.2.5) luetelluilla tapahtumatyypeillä. Edelleen kukin tapahtuma voidaan liittää johonkin opinnäytteeseen liitettyyn työtehtävään.
Taulun kentät, kenttien merkitys ja tauluun liittyvät relaatiot on kuvattu alla:
Deleted kertoo, onko tapahtuma poistettu taulusta.
EventID on tapahtuman id ja samalla taulun perusavain.
AssignmentID ilmaisee opinnäytteen id:n. Relaatio tauluun Assignment (luku 5.3.6) liittää tapahtuman opinnäytteeseen.
RegistratorID ilmoittaa työn kirjaajan id:n. Relaatio tauluun AssignmentRelatedPerson (luku 5.3.9) liittää kirjaajan yksikäsitteisesti opinnäytteeseen liitettyyn henkilöön. Samalla relaatiolla saadaan selville myös mm. kirjaajan todellinen nimi ja rooli opinnäytteessä.
EventDate sisältää tapahtuman päivämäärän (vapaaehtoinen).
BeginTime sisältää tapahtuman aloittamisajan (vapaaehtoinen).
End Time sisältää tapahtuman lopettamisajan (vapaaehtoinen).
Title sisältää tapahtuman otsikon.
Memo sisältää tapahtuman kuvauksen.
TaskID sisältää työtehtävän id:n, joka viittaa tauluun AssignmentTask (luku 5.4.5). Tällä tapahtumaan voidaan liittää jokin opinnäytteen työtehtävistä (vapaaehtoinen).
EventTypeID ilmoittaa tapahtuman tyypin id:n. Relaatio tauluun AssEventType (luku 5.2.5) antaa tapahtumalle halutun tyypin
Taulukossa 5.32 on esimerkki taulun käytöstä:
Deleted
|
AssignmentID
|
RegistratorID
|
EventDate
|
BeginTime
|
EndTime
|
False
|
1
|
4
|
13.5.2002
|
12:00
|
14:00
|
Title
|
Memo
|
TaskID
|
EventTypeID
|
Aiheen aloittaminen
|
Sovittiin
aiheen
aloittamisesta
opiskelijan
kanssa.
|
1
|
2
|
Taulukko 5.32: Esimerkki AssignmentEvent-taulun sisällöstä.
Jokaisen tapahtuman lisäämisen yhteydessä opinnäytteeseen liitetyille henkilöille asetetaan merkintä, että he eivät ole lukeneet kyseistä tapahtumaa. Kun käyttäjä käy lukemassa tapahtuman, asetetaan merkintä poistetuksi. Näitä merkintöjä ylläpidetään taulussa UnreadMessages, joka näkyy kuvan 6 ER-kaaviossa MtoM-relaationa taulujen AssignmentRelatedPerson (luku 5.3.9) ja AssignmentEvent (luku 5.5.1) välillä.
Taulun rivejä poistetaan automaattisesti aika ajoin, sillä taulun sisältö saattaa muutoin paisua liian suureksi. Poisto tehdään ensisijaisesti Deleted-kentän perusteella. Jos arvona on true, niin tiedon saa poistaa. Toisaalta jos ToBeRemoved-päivämäärä on tullut täyteen, poistetaan kyseinen rivi joka tapauksessa.
Taulun kentät, kenttien merkitys ja tauluun liittyvät relaatiot on esitetty alla.
Deleted kertoo, täytyykö tieto poistaa taulusta. Arvoksi asetetaan true kun henkilö on käynyt lukemassa tapahtuman.
AssPersonID ilmaisee opinnäytteeseen liittyvän henkilön id:n ja on samalla osa taulun perusavainta. Viittaa tauluun AssignmentRelatedPerson (luku 5.3.9), jossa relaatio edelleen yksilöi henkilön.
EventID ilmaisee tapahtuman id:n ja on samalla osa taulun perusavainta. Viittaa tauluun AssignmentEvent (luku 5.5.1).
ToBeRemoved sisältää päivämäärän, jolloin tiedon saa poistaa riippumatta siitä, onko tapahtuma edelleen lukematta.
Taulukossa 5.33 on esimerkki taulun käytöstä:
Deleted
|
AssPersonID
|
EventID
|
ToBeRemoved
|
False
|
1
|
1
|
14.5.2002
|
True
|
2
|
1
|
14.5.2002
|
Taulukko 5.33: Esimerkki UnreadMessages-taulun sisällöstä.
Taulussa AssignmentFinished säilytetään opiskelijoiden arvostelujen tietoja. Arvostelut ovat henkilökohtaisia siten, että kukin opinnäytteen ohjaaja voi arvostella jokaisen opinnäytteeseen liitetyn opiskelijan erikseen.
Taulun kentät, kenttien merkitys ja tauluun liittyvät relaatiot on esitetty alla:
Deleted kertoo, onko arvostelu poistettu taulusta.
PersonToBeGradedID ilmaisee arvosteltavan henkilön id:n ja on samalla osa taulun perusavainta. Viittaa tauluun AssignmentRelatedPerson (luku 5.3.9), jolloin arvosteltava liittyy yksikäsitteisesti haluttuun opinnäytteeseen.
GradedByID ilmaisee arvostelijan id:n ja on samalla osa taulun perusavainta. Viittaa tauluun AssignmentRelatedPerson (luku 5.3.9),.
GradeID ilmaisee arvosanan id:n. Viittaa Kotka-kannan tauluun Grade (luku 4.15).
GradeDate sisältää arvostelupäivämäärän.
Credits sisältää opiskelijan saamat opintoviikot (vapaaehtoinen).
Memo sisältää sanallisen arvioinnin (vapaaehtoinen).
Taulukossa 5.34 on esimerkki taulun käytöstä:
Deleted
|
PersonToBe GradedID
|
GradedByID
|
GradeID
|
GradeDate
|
Credits
|
Memo
|
False
|
2
|
1
|
3
|
18.5.2002
|
2
|
|
False
|
3
|
1
|
5
|
18.5.2002
|
2
|
|
Taulukko 5.34: Esimerkki AssignmentFinished-taulun sisällöstä.
Koppelo-sovellukseen liittyvät opinnäytteen hallintaoikeudet ja tiedon näkyvyysoikeudet määritellään käyttäjäryhmä-, rooli- ja henkilökohtaisesti. Oikeudet määrätään taulussa AssignmentRight (luku 5.6.1) ja käyttäjien oikeuksien ylläpitämiseen on olemassa taulut AssUserGroupRelRight (luku 5.6.2), AssRoleRelRight (luku 5.6.3) ja AssPersonRelRight (luku 5.6.4). Näistä kolme viimeksi mainittua näkyvät kuvan 6 ER-kaaviossa MtoM-suhteina taulujen AssignmentRight (luku 5.6.1) sekä AccessRighLevel (luku 2.2), AssignmentRole (luku 5.2.3), AssignmentType (luku 5.2.1) ja StudyLine (luku 5.2.2) välillä.
Kaikki kolme oikeusrelaatiotaulua ovat välttämättömiä, sillä yksistään Kotka-järjestelmän käyttäjäryhmän perustella tapahtuva luokittelu on aivan liian karkea. Toisaalta opinnäytteiden rooleihin pohjautuvaa oikeusjakoa ei voida käyttää ennen kuin opinnäytteeseen on liitetty henkilöitä. Lisäksi, jotta olisi olemassa joitakin (hyväksyttyjä) opinnäytteiden aiheita (aloitetuista opinnäytteistä puhumattakaan), täytyy rajatulle ihmisryhmälle antaa oikeudet hyväksyä ja kiinnittää aiheita linjoilla ja opinnäytetyypeillä rajattuna. Näin kaikkien kolmen oikeustaulun olemassaolo on perusteltua. Niissä esitetyt oikeudet täydentävät toisiaan, eikä niitä ole tarkoitettukaan sulkemaan toisiaan pois.
Näiden kolmen oikeustaulun käytöstä voi aiheutua joitain ristiriitatilanteita, esimerkiksi tietylle henkilölle on myönnetty arvosteluoikeus, mutta hänen käyttäjäryhmälleen vastaavaa oikeutta ei ole annettu. Nämä tilanteet ratkaistaan siten, että jos henkilö on jonkin oikeustaulun mukaan oikeutettu suorittamaan kyseisen toiminnon, hän saa sen tehdä.
Taulussa AssignmentRight luetellaan kaikki Koppelo-sovellukseen liittyvät oikeudet. Taulun kentät, kenttien merkitys ja tauluun liittyvät relaatiot on esitetty alla.
Deleted kertoo, onko oikeus poistettu taulusta.
RightID on oikeuden id ja samalla taulun avainkenttä.
Name ilmoittaa oikeuden nimen. Koska oikeusosio on tarkoitettu vain järjestelmän ylläpitäjän käyttöön, ei oikeuksien nimiä ole monikielistetty
Taulukossa 5.35 on esimerkki taulun käytöstä:
Deleted
|
RightID
|
Name
|
False
|
1
|
Aiheen
hyväksyminen
|
False
|
2
|
Aiheen
kiinnittäminen
|
False
|
3
|
Opinnäytteen
arvostelu
|
Taulukko 5.35: Esimerkki AssignmentRight-taulun sisällöstä.
Taulussa AssUserGroupRelRight yhdistetään oikeuksia tiettyihin Kotka-järjestelmän mukaisiin käyttäjäryhmiin. Taulu näkyy kuvan 6 ER-kaaviossa MtoM-suhteena taulujen AssignmentRight (luku 5.6.1) ja AccessRightLevel (luku 2.2) välillä.
Taulun kentät, kenttien merkitys ja tauluun liittyvät relaatiot on esitetty alla.
Deleted kertoo, onko oikeus poistettu taulusta.
GroupID ilmoittaa käyttäjäryhmän id:n ja on samalla osa taulun perusavainta. Relaatio Kotka-kannan tauluun AccessRightLevel (luku 2.2) liittää oikeuden käyttäjäryhmään.
RightID ilmoittaa oikeuden id ja on samalla osa taulun perusavainta. Viittaa tauluun AssignmenRight (luku 5.6.1).
GrantedBy ilmoittaa oikeuden myöntäjän. Viittaa Kotka-kannan tauluun Person (luku 3.2).
GrantedOn sisältää oikeuden myöntämispäivämäärän.
Taulukossa 5.36 on esimerkki taulun käytöstä:
Deleted
|
GroupID
|
RightID
|
GrantedBy
|
GrantedOn
|
False
|
2
|
1
|
1
|
1.5.2002
|
False
|
2
|
2
|
1
|
1.5.2002
|
Taulukko 5.36: Esimerkki AssUserGroupRelRight-taulun sisällöstä.
Taulussa AssRoleRelRight yhdistetään oikeuksia tiettyihin Kotka-järjestelmän mukaisiin käyttäjäryhmiin. Taulu näkyy kuvan 6 ER-kaaviossa MtoM-suhteena taulujen AssignmentRight (luku 5.6.1) ja AssignmentRole (luku 5.2.3) välillä.
Taulun kentät, kenttien merkitys ja tauluun liittyvät relaatiot on esitetty alla.
Deleted kertoo, onko oikeus poistettu taulusta.
RoleID ilmoittaa roolin id:n ja on samalla osa taulun perusavainta. Relaatio tauluun AssignmentRole (luku 5.2.3) liittää oikeuden opinnäytteen rooliin.
RightID ilmoittaa oikeuden id ja on samalla osa taulun perusavainta. Viittaa tauluun AssignmenRight (luku 5.6.1).
GrantedBy ilmoittaa oikeuden myöntäjän. Viittaa Kotka-kannan tauluun Person (luku 3.2).
GrantedOn sisältää oikeuden myöntämispäivämäärän.
Taulukossa 5.37 on esimerkki taulun käytöstä:
Deleted
|
RoleID
|
RightID
|
GrantedBy
|
GrantedOn
|
False
|
2
|
1
|
1
|
1.5.2002
|
False
|
2
|
2
|
1
|
1.5.2002
|
Taulukko 5.37: Esimerkki AssRoleRelRight-taulun sisällöstä.
Taulussa AssPersonRelRight yhdistetään oikeuksia tiettyihin Kotka-järjestelmän käyttäjiin. Samalla oikeus liitetään aina tiettyyn linjaan ja opinnäytetyyppiin. Taulu näkyy kuvan 6 ER-kaaviossa MtoM-suhteena taulujen AssignmentRight (luku 5.6.1), AssignmentType (luku 5.2.1) ja StudyLine (luku 5.2.2) välillä.
Taulun kentät, kenttien merkitys ja tauluun liittyvät relaatiot on esitetty alla.
Deleted kertoo, onko oikeus poistettu taulusta.
PersonID ilmoittaa henkilön id:n ja on samalla osa taulun perusavainta. Relaatio Kotka-kannan tauluun Person (luku 3.2) liittää oikeuden yksittäiseen henkilöön.
RightID ilmoittaa oikeuden id ja on samalla osa taulun perusavainta. Viittaa tauluun AssignmenRight (luku 5.6.1).
LineID ilmoittaa linjan id:n ja on samalla osa taulun perusavainta. Viittaa tauluun StudyLine (luku 5.2.2) ja yhdistää oikeuden tiettyyn linjaan.
AssTypeID ilmoittaa opinnäytteen tyypin id:n ja on samalla osa taulun perusavaita. Viittaa tauluun AssignmentType (luku 5.2.1) ja yhdistää oikeuden tiettyyn opinnäytetyyppiin.
GrantedBy ilmoittaa oikeuden myöntäjän. Viittaa Kotka-kannan tauluun Person (luku 3.2).
GrantedOn sisältää oikeuden myöntämispäivämäärän.
Taulukossa 5.38 on esimerkki taulun käytöstä:
Deleted
|
RoleID
|
RightID
|
LineID
|
AssTypeID
|
GrantedBy
|
GrantedOn
|
False
|
2
|
1
|
1
|
1
|
1
|
1.5.2002
|
False
|
2
|
1
|
1
|
2
|
1
|
1.5.2002
|
False
|
2
|
1
|
2
|
1
|
1
|
1.5.2002
|
False
|
2
|
1
|
2
|
2
|
1
|
1.5.2002
|
Taulukko 5.38: Esimerkki AssPersonRelRight-taulun sisällöstä.
Fees and Invoices -moduuliin on pyritty kokoamaan sellaiset taulut, jotka käsittelevät rahaa suorasti tai epäsuorasti. Halko-järjestelmässä tällaisia ovat mm. järjestelmässä käytettäviin kausiluontoisiin maksuihin, kurssimaksuhin sekä opettajien palkkoihin liittyvät taulut. Moduuli toteutettiin ainoastaan Halko-järjestelmään.
Taulu määrittelee tietyllä periodilla käytettävät kurssimaksut tietylle kurssille. Taulu sisältää seuraavat kentät:
Deleted
|
ilmoittaa,
onko tietue merkitty poistetuksi.
|
CourseInstanceID
|
määrittelee
kurssi-instanssin.
|
PeriodID
|
määrittelee
periodin, jolla kurssimaksu on voimassa.
|
NoPeriodFeeEuro
|
määrittelee
kurssimaksun euroina kausikortittomalle henkilölle.
|
NoPeriodFeeMark
|
määrittelee
kurssimaksun markkoina kausikortittomalle henkilölle.
|
PeriodFeeEuro
|
määrittelee
kurssimaksun euroina kausikortilliselle henkilölle.
|
PeriodFeeMark
|
määrittelee
kurssimaksun markkoina kausikortilliselle henkilölle.
|
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki taulun sisällöstä on taulukossa 129.
Deleted
|
CourseInstanceID
|
PeriodID
|
NoPeriodFeeEuro
|
False
|
1
|
1
|
30
|
False
|
1
|
2
|
10
|
Taulukko 129. Esimerkki CourseCost-taulun sisällöstä.
Taulu määrittelee opettajien tuntipalkkiot kursseilla. Taulu sisältää seuraavat kentät:
Deleted
|
ilmoittaa,
onko tietue merkitty poistetuksi.
|
TeacherFeeID
|
on
taulun avainkenttä.
|
CourseParticipantID
|
määrittelee
henkilön ja kurssin, joihin palkkio liittyy.
|
Euro
|
määrittelee
tuntipalkkion euroina
|
Mark
|
määrittelee
tuntipalkkion markkoina
|
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki taulun sisällöstä on taulukossa 130.
Deleted
|
TeacherFeeID
|
CourseParticipantID
|
Euro
|
Mark
|
False
|
1
|
1
|
20
|
120
|
False
|
2
|
2
|
10
|
60
|
False
|
3
|
3
|
30
|
180
|
Taulukko 130. Esimerkki TeacherHourlyFee-taulun sisällöstä.
Taulu määrittelee kausikorttien hinnat. Taulu sisältää seuraavat kentät:
Deleted
|
ilmoittaa,
onko tietue merkitty poistetuksi.
|
PeriodFeeID
|
on
taulun avainkenttä.
|
Euro
|
on
kausikortin hinta euroina.
|
Mark
|
on
kausikortin hinta markkoina
|
Esimerkki PeriodFee-taulun sisällöstä on taulukossa 131.
Deleted
|
PeriodFeeID
|
Mark
|
Euro
|
False
|
1
|
150
|
25
|
False
|
2
|
150
|
25
|
False
|
3
|
100
|
15
|
Taulukko 131. Esimerkki PeriodFee-taulun sisällöstä.
Taulu määrittelee kausikorttien voimassaoloajat. Taulu sisältää seuraavat kentät:
Deleted
|
ilmoittaa,
onko tietue merkitty poistetuksi.
|
PeriodFeeID
|
määrittelee
kyseessä olevan kausikortin
|
PeriodID
|
määrittelee
voimassaoloajanjakson
|
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki PeriodFeePeriod-taulun sisällöstä on taulukossa 132.
Deleted
|
PeriodFeeID
|
PeriodID
|
False
|
1
|
1
|
False
|
2
|
1
|
False
|
2
|
2
|
Taulukko 132. Esimerkki PeriodFeePeriod-taulun sisällöstä.
Taulu määrittelee laskujen tilan. Taulu sisältää seuraavat kentät:
Deleted
|
ilmoittaa,
onko tietue merkitty poistetuksi.
|
InvoiceStatusID
|
on
taulun avainkenttä
|
Esimerkki InvoiceStatus-taulun sisällöstä on taulukossa 133.
Deleted
|
InvoiceStatusID
|
False
|
1
|
False
|
2
|
False
|
3
|
Taulukko 133. Esimerkki InvoiceStatus-taulun sisällöstä.
Taulu monikielistää InvoiceStatus-taulun.Taulu sisältää seuraavat kentät:
Deleted
|
ilmoittaa,
onko tietue merkitty poistetuksi.
|
LanguageID
|
määrittelee
kielen.
|
InvoiceStatusID
|
määrittelee
kyseessä olevan tilan.
|
Name
|
määrittelee
tilan nimen.
|
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki InvoiceStatusLang-taulun sisällöstä on taulukossa 134.
Deleted
|
LanguageID
|
InvoiceStatusID
|
Name
|
False
|
1
|
1
|
Lähetetty
|
False
|
2
|
1
|
Sent
|
False
|
1
|
2
|
Maksettu
|
Taulukko 134. Esimerkki InvoiceStatusLang-taulun sisällöstä.
Taulu määrittelee kursseihin ja kausikortteihin liittyvät laskut. Kyseessä ovat siis laskutuskokonaisuudet, jotka jakaantuvat yhteen tai useampaan eräpäiviltään ja mahdollisesti summiltaan eroavaan laskuun. Nämä osittaislaskut määritellään Bill-taulussa (ks. luku 6.8). Taulu sisältää seuraavat kentät:
Deleted
|
ilmoittaa,
onko tietue merkitty poistetuksi.
|
InvoiceID
|
määrittelee
kielen
|
AdditionalInfo
|
kenttään
voidaan kirjoittaa lisätietoja laskusta
|
OrganisationID
|
määrittelee
maksajaorganisaation tai maksajan kotiorganisaation
|
InvoiceStatusID
|
määrittelee
kyseessä olevan tilan
|
PersonID
|
määrittelee
tilan nimen
|
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki Invoice-taulun sisällöstä on taulukossa 135.
Deleted
|
InvoiceID
|
AdditionalInfo
|
OrganisationID
|
False
|
1
|
Alennettu
rehtorin päätöksellä
|
1
|
False
|
2
|
|
1
|
False
|
3
|
|
3
|
InvoiceStatusID
|
PersonID
|
1
|
86
|
1
|
82
|
2
|
90
|
Taulukko 135. Esimerkki Invoice-taulun sisällöstä.
Taulu määrittelee fyysiset eli asiakkaille lähetettävät laskut. Taulu sisältää seuraavat kentät:
Deleted
|
ilmoittaa,
onko tietue merkitty poistetuksi.
|
BillID
|
on
taulun avainkenttä.
|
InvoiceID
|
määrittelee
mihin laskutettavaan kokonaisuuteen lasku liittyy .
|
DueDate
|
määrittelee
laskun eräpäivän.
|
ReferenceNum
|
määrittelee
laskun viitenumeron.
|
Euro
|
määrittelee
laskutettavan summan euroina.
|
Mark
|
määrittelee
laskutettavan summan markkoina.
|
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki Bill-taulun sisällöstä on taulukossa 136.
Deleted
|
BillID
|
InvoiceID
|
DueDate
|
False
|
1
|
1
|
2001-03-30
|
False
|
2
|
1
|
2001-04-30
|
False
|
3
|
1
|
2001-05-30
|
ReferenceNum
|
Euro
|
Mark
|
11869
|
10
|
60
|
12820
|
10
|
60
|
13901
|
10
|
60
|
Taulukko 136. Esimerkki Bill-taulun sisällöstä.
Taulu määrittelee fyysisten laskujen tilan. Taulu sisältää seuraavat kentät:
Deleted
|
ilmoittaa,
onko tietue merkitty poistetuksi.
|
BillID
|
määrittelee
kyseessä olevan fyysisen laskun.
|
InvoiceStatusID
|
määrittelee
kyseessä olevan laskun tilan.
|
PersonID
|
määrittelee
tilan vaihtaneen henkilön.
|
StatusChangedOn
|
määrittelee
päivämäärän, jolloin laskun tila vaihtui.
|
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki BillStatus-taulun sisällöstä on taulukossa 137.
Deleted
|
BillID
|
InvoiceStatusID
|
PersonID
|
StatusChangedOn
|
False
|
1
|
1
|
192
|
2001-03-30
09:08:00+03
|
False
|
2
|
1
|
192
|
2001-03-30
09:11:00+03
|
False
|
1
|
2
|
192
|
2001-04-12
12:40:00+03
|
Taulukko 137. Esimerkki BillStatus-taulun sisällöstä.
Taulu määrittelee laskettavat kurssit. Taulu sisältää seuraavat kentät:
Deleted
|
ilmoittaa,
onko tietue merkitty poistetuksi.
|
InvoiceID
|
määrittelee
kyseessä olevan laskun
|
CourseInstanceID
|
määrittelee
laskutettavan kurssin
|
PersonID
|
määrittelee
laskun käsittelijän
|
Reason
|
määrittelee
mahdollisen alennuksen syyn
|
DiscountEuro
|
määrittelee
mahdollisen alennuksen määrän euroina
|
DiscountMark
|
määrittelee
mahdollisen alennuksen määrän markkoina
|
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki InvoiceItemCourse-taulun sisällöstä on taulukossa 138.
Deleted
|
InvoiceID
|
CourseInstanceID
|
PersonID
|
False
|
1
|
1
|
192
|
False
|
1
|
2
|
192
|
False
|
2
|
2
|
79
|
Reason
|
DiscountEuro
|
DiscountMark
|
Sopimus
|
20
|
120
|
Sopimus
|
30
|
180
|
Taloudelliset
syyt
|
10
|
60
|
Taulukko 138. Esimerkki InvoiceItemCourse-taulun sisällöstä.
Taulu määrittelee laskutettavat kausikortit. Taulu sisältää seuraavat kentät:
Deleted
|
ilmoittaa,
onko tietue merkitty poistetuksi.
|
InvoiceID
|
määrittelee
kyseessäolevan laskun.
|
PeriodFeeID
|
määrittelee
laskutettavan kausikortin.
|
Reason
|
määrittelee
mahdollisen alennuksen syyn.
|
DiscountEuro
|
määrittelee
mahdollisen alennuksen määrän euroina.
|
DiscountMark
|
määrittelee
mahdollisen alennuksen määrän markkoina.
|
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki InvoiceStatusLang-taulun sisällöstä on taulukossa 139.
Deleted
|
InvoiceID
|
PeriodFeeID
|
PersonID
|
False
|
1
|
1
|
192
|
False
|
1
|
2
|
192
|
False
|
2
|
2
|
79
|
Reason
|
DiscountEuro
|
DiscountMark
|
Sopimus
|
10
|
60
|
Sopimus
|
15
|
90
|
Taloudelliset
syyt
|
5
|
30
|
Taulukko 139. Esimerkki InvoiceItemPeriod-taulun sisällöstä.
Kolibri-projektissa toteutettiin Kotka- ja Korppi-projekteissa toteutetun tietokannan kanssa yhteensopiva päivyri- ja ajanvarausosio, jota tullaan käyttämään useammassa Kotka-järjestelmän osiossa. Se ei siis käytännössä ole oma kokonaan erillinen osionsa, mutta sitä voidaan käyttää myös erillisenä sovelluksena. Kotka-järjestelmän tietokannan osalta tämä edellytti sekä uusien rakenteiden luomista että olemassaolevan rakenteen muokkaamista. Seuraavissa alaluvuissa esitetään ensin toteutetut lisäykset ja sen jälkeen tehdyt muutokset edeltäneeseen tietokantarakenteeseen.
Kurssikirjanpito-moduulin suuntaa-antava ER-kaavio esitetään kuvassa 8 ja sen ominaisuuksiin perehdytään seuraavissa aliluvuissa niiltä osin, mitä Kolibri-työprojektin yhteydessä on tarvinnut muuttaa tai lisätä. Muita tauluja ei tässä yhteydessä esitellä, sillä niiden kuvaukset löytyvät luvusta 4.
Taulu kuvaa tapahtuman (luku 4.25) näkyvyydelle asetettavat mahdolliset rajoitteet. Taulu sisältää seuraavat kentät:
Deleted ilmaisee, onko näkyvyysarvo poistettu.
VisibilityID on taulun perusavainkenttä.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki taulun sisällöstä on taulukossa 140.
Deleted
|
VisibilityID
|
False
|
1
|
False
|
2
|
Taulukko 140: Esimerkki Visibility-taulun sisällöstä.
Taulu kuvaa kaikki näkyvyysarvot teksteinä kaikilla järjestelmän käyttämillä kielillä. Taulu sisältää seuraavat kentät:
Deleted ilmaisee, onko käännös poistettu.
VisibilityID määrittelee käännettävän näkyvyysarvon.
LanguageID määrittelee, mille kielelle näkyvyysarvo käännetään.
Name sisältää varsinaisen käännöksen.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki taulun sisällöstä on taulukossa 141.
Deleted
|
VisibilityID
|
LanguageID
|
Name
|
False
|
1
|
1
|
Julkinen
|
False
|
1
|
4
|
Öffentlich
|
Taulukko 141: Esimerkki VisibilityTranslation-taulun sisällöstä.
Taulu kuvaa tapahtuman mahdolliset prioriteetit eli sen tärkeysasteet. Taulu sisältää seuraavat kentät:
Deleted ilmaisee, onko prioriteetti poistettu.
PriorityID on taulun perusavainkenttä.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki taulun sisällöstä on taulukossa 142.
Deleted
|
PriorityID
|
False
|
1
|
False
|
2
|
Taulukko 142: Esimerkki Priority-taulun sisällöstä
Taulu kuvaa kaikki prioriteetit teksteinä kaikilla järjestelmän käyttämillä kielillä. Taulu sisältää seuraavat kentät:
Deleted ilmaisee, onko käännös poistettu.
PriorityID määrittelee käännettävän prioriteetin.
LanguageID määrittelee, mille kielelle prioriteetti käännetään.
Name sisältää varsinaisen käännöksen.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki taulun sisällöstä on taulukossa 143.
Deleted
|
PriorityID
|
LanguageID
|
Name
|
False
|
1
|
1
|
Matala
|
False
|
1
|
4
|
Tief
|
Taulukko 143: Esimerkki PriorityTranslation -taulun sisällöstä.
Taulu kuvaa tapahtumaan liitettävää palautetta eli se määrittelee eräänlaiset "muistilaput", joita käyttäjät voivat jättää tapahtumaa koskien. Taulu sisältää seuraavat kentät:
Deleted kertoo, onko palaute poistettu.
NoteID on taulun perusavainkenttä.
EventID liittää palautteen tiettyyn tapahtumaan.
PersonID liittää palautteen henkilöön, joka sen on jättänyt.
Time kertoo ajankohdan, jolloin palaute on jätetty.
Message kertoo palautteen varsinaisen viestin.
Title kertoo palautteen aiheen tai otsikon.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki taulun sisällöstä on taulukossa 144.
Deleted
|
NoteID
|
EventID
|
PersonID
|
Time
|
Message
|
Title
|
False
|
12
|
1234
|
507
|
2001-12-04
09:42:03+02
|
Asia
selvä!
|
Terve.
|
False
|
13
|
1235
|
783
|
2002-01-09
21:32:53+02
|
Take
care!
|
New
assignment.
|
Taulukko 144: Esimerkki Note-taulun sisällöstä.
Taulu kuvaa ryhmän luonnin yhteydessä siihen liitettäviä kommentteja. Taulua käytetään lähinnä tenttiin ilmoittautumisen yhteydessä kuvaamaan tentaattorille jätettyjä viestejä. Taulu sisältää seuraavat kentät:
Deleted kertoo, onko kommentti poistettu.
CommentID on taulun perusavainkenttä.
Comment sisältää kommentin sanallisena.
GroupParticipantID liittää kommentin ryhmän luontihetkeen.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki taulun sisällöstä on taulukossa 145.
Deleted
|
CommentID
|
Comment
|
GroupParticipantID
|
False
|
21
|
Moneltako
sieltä saa poistua?
|
31
|
False
|
22
|
Sisältyykö
luku 7 k.o. tenttiin?
|
77
|
Taulukko 145: Esimerkki Comment-taulun sisällöstä.
Taulun avulla kuvataan tapahtumaryhmien keskinäiset suhteet. Jokaisen ryhmän kohdalla luetellaan kaikki sen aliryhmät. Myös ryhmää itse pidetään sen aliryhmänä. Tällaisella rakenteella pystytään toteuttamaan ryhmien mahdollinen koostuminen pienemmistä aliryhmistä. Taulu koostuu seuraavista kentistä:
Deleted kertoo, onko tapahtumaryhmäsuhde poistettu.
EventGroupID kertoo tapahtumaryhmän, jonka tiedoista on kyse.
SubEventGroupID määrittelee aliryhmän EventGroupID:n määrittelemälle tapahtumaryhmälle.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki taulun sisällöstä on taulukossa 146. Siinä määritellään kahden tapahtumaryhmän suhde, jossa ryhmä 13 sijoitetaan ryhmän 12 alle.
Deleted
|
EventGroupID
|
SubEventGroupID
|
False
|
12
|
12
|
False
|
12
|
13
|
False
|
13
|
13
|
Taulukko 146: Esimerkki EventGroupRelationship-taulun sisällöstä.
EventGroup-taulu (katso luku 4.23) piti laajentaa käsittämään muunkinlaisia tapahtumaryhmiä kuin vain opetustapahtumista koostuvia. Tämän takia EventGroup- ja CourseInstance-taulujen (katso luku 4.6) välinen viite-eheys piti purkaa, s.o. EventGroup-taulun CourseInstanceID-kenttään sallitaan vastedes NULL-arvot. Samalla lisättiin seuraava kannan ylläpitoa helpottava kenttä:
ValidUntil ilmoittaa, mihin saakka ryhmä on voimassa.
Tauluun lisättiin seuraava relaatio:
Esimerkki taulun sisällöstä on taulukossa 147. Siinä määritellään kaksi tapahtumaryhmää, joista jälkimmäinen ei liity mihinkään kurssi-instanssiin.
Deleted
|
EventgroupID
|
CourseInstanceID
|
GrouptypeID
|
MinParticipants
|
False
|
12
|
13
|
2
|
20
|
False
|
13
|
NULL
|
6
|
NULL
|
Name
|
MaxParticipants
|
NumberOfOccureces
|
Demoryhmä
3
|
100
|
12
|
Salibandyseura
|
NULL
|
NULL
|
Comment
|
URI
|
ValidUntil
|
Tervetuloa!
|
www.mit.jyu.fi/~vesal
|
2002-01-09
23:59:59+02
|
NULL
|
www.jkl-sahly.fi
|
2002-31-12
23:59:59+02
|
Taulukko 147: Esimerkki EventGroup-taulun sisällöstä.
Event-taulu (katso luku 4.25) piti laajentaa käsittämään myös tapahtumia, jotka eivät liity mihinkään tapahtumaryhmään. Tämän takia Event- ja EventGroup-taulujen (katso luku 4.23) välinen viite-eheys piti purkaa, s.o. Event-taulun EventGroupID-kenttään sallitaan vastedes NULL-arvot. Samalla lisättiin seuraavat kentät:
VisibilityID liittää tapahtumalle näkyvyysarvon
PriorityID liittää tapahtumalle tärkeysarvon l. prioriteetin
Name kertoo tapahtuman nimen tai kuvauksen.
Tauluun lisätyt relaatiot ovat:
Esimerkki taulun sisällöstä on taulukossa 148. Siinä määritellään kaksi tapahtumaa, joista jälkimmäinen ei liity mihinkään tapahtumaryhmään.
Deleted
|
EventID
|
EventGroupID
|
RealParticipants
|
BeginTime
|
False
|
123
|
12
|
37
|
2001-09-17
08:00:00+02
|
False
|
124
|
NULL
|
1
|
2001-12-12
19:30:00+02
|
VisibilityID
|
EndTime
|
PriorityID
|
Name
|
1
|
2001-09-17
10:00:00+02
|
1
|
NULL
|
2
|
2001-12-13
04:00:00+02
|
1
|
Ulos
Leenan kanssa
|
Taulukko 148. Esimerkki Event-taulun sisällöstä.
Tauluun (katso luku 4.13) on lisätty seuraava kenttä:
UserLevel määrittelee ryhmään kuuluvan henkilön oikeudet esim. ryhmän muokkauksessa. Voi olla, että tästä tehdään oma taulunsa.
Tauluun on lisätty seuraava relaatio:
Esimerkki taulun sisällöstä on taulukossa 149.
Deleted
|
PersonID
|
EventGroupID
|
GroupParticipantID
|
RegisteredOn
|
False
|
507
|
12
|
18
|
2001-09-17
11:13:47+02
|
False
|
508
|
12
|
19
|
2001-09-17
11:18:13+02
|
UserLevel
|
0
|
1
|
Taulukko 149. Esimerkki GroupParticipant-taulun sisällöstä.
Space-taulu (katso luku 4.27) piti laajentaa käsittämään myös tiloja, jotka eivät liity mihinkään (yliopiston) organisaatioon. Tämän takia Space- ja Organisation-taulujen (katso luku 2.9) välinen viite-eheys piti purkaa, s.o. Space-taulun OrganisationID-kenttään sallitaan vastedes NULL-arvot. Kiuru-projekti on myös laajentanut Space-taulun toimintaa (katso luku 8.5.1)
Esimerkki taulun sisällöstä on taulukossa 150. Siinä määritellään kaksi tapahtumaa, joista jälkimmäinen ei kuulu mihinkään yliopiston organisaatioon.
Deleted
|
SpaceID
|
Code
|
OrganisationID
|
SpaceTypeID
|
False
|
26
|
AgB213.1
|
3
|
1
|
False
|
27
|
Bar
68
|
NULL
|
NULL
|
Taulukko
150. Esimerkki
Space-taulun
sisällöstä.
Luvussa esitellään Kiuru-projektin salivarausmoduuliin luomat taulut sekä muutokset olemassaoleviin kurssikirjanpito- ja henkilötietomoduulien tauluihin. Kotka-projektin taulurakennetta käytettiin hyödyksi tapahtumien ja salien määrittelyn osalta, mutta sitä laajennettiin salivarausten, saliryhmien ja resurssipyyntöjen osalta. Kiuru-projektin suunnittelema ER-kaavio on esitetty kuvassa 10.
Kiuru-sovellukseen luodut taulut käyttävät Kotka-tietokannan henkilö- ja kurssikirjanpitomoduulin tauluja. Salityypit ja saliryhmät voidaan nähdä laajennuksena kurssikirjanpitomoduuliin. Yhteydet henkilöiden (luku 3) ja organisaatioiden hallintaan (luku 2) tarvitaan henkilöiden ja organisaatioiden liittämiseksi salivarauksiin sekä saliryhmien oikeuksien määräämiseen. Organisaatioiden hallinnan tauluja (luku 2) tarvitaan varaaja- ja maksajaorganisaation liittämiseen varaukseen.
Kurssikirjanpitomoduulin (luku 4) ja sieltä erityisesti kalenterin (luku 7) tauluja tarvitaan liittämään salivaraus haluttuun tapahtumaan (esim. kurssien opetustapahtumat, laitoksen kokoukset, tenttipäivät).
Salivarausmoduulin taulut ja niiden yhteydet olemassaoleviin Kotka-järjestelmän tauluihin on esitetty yleisellä tasolla kommentoiden kuvassa 10. Kaaviossa ei ole tilansäästösyistä esitetty kaikkia kenttiä (esim. Deleted-kentät ja ID-numerot), vaan taulujen täsmälliset kuvaukset ovat luvuissa 8.2-8.5. Kuvassa 9 on esitetty lyhennysmerkintä järjestelmän käyttämille parametritauluille.
Kiuru-projekti luopui Kotka-järjestelmän jatkokehittäjien suositteleman käytännön mukaan aiempien projektien käyttämistä Translation-tauluista. Näin tietokannan rakennetta ja hakuja saadaan yksinkertaistettua huomattavasti. Monikielistäminen hoidetaan ohjelmallisesti User-pavun T-metodilla. Tauluissa olevat merkkijonoarvoiset kentät annetaan järjestelmän oletuskielellä.
Kuva 9. Lyhennysmerkintä parametritauluille.
Kuva 10. Kiuru-projektin määrittelemän salivarausosuuden ER-kaavio.
Kiuru-projektin luomat saleihin ja saliryhmiin liittyvät taulut voidaan ymmärtää laajennuksena kurssikirjanpitomoduuliin tai ylläpitäjän toimintoihin. Saliryhmien ensisijainen tarkoitus on kuitenkin määritellä salien varausoikeudet ja kurssikirjanpitomoduuli toimii myös ilman saliryhmiä. Siksi uudet taulut on merkitty osaksi salivarausmoduulia
Taulussa SpaceType on kuvattu järjestelmän tuntemat salityypit. Taulu on tarkoitettu lähinnä hakujen ja raporttien luonnin helpottamiseen (esim. kurssien suunnittelusta vastaava henkilö pystyy helposti hakemaan kaikki mikroluokat). Tauluun on määritelty myös erityinen salityyppi "oheisvarattava", jolloin "sali" on oikeastaan varattava resurssi, esim. videoprojektori. Tällöin ei tarvitse määritellä erikseen salivarauksia ja muiden resurssien varauksia.
Taulun rakenne ja kenttien merkitys on kuvattu alla. Tauluun ei liity suhteita.
Deleted kertoo, onko salityyppi poistettu taulusta.
SpaceTypeID on salityypin tunniste ja taulun avainkenttä.
Name sisältää salityypin nimen järjestelmän oletuskielellä.
Taulukossa 8.1 on esimerkki taulun käytöstä.
Deleted
|
SpaceTypeID
|
Name
|
False
|
1
|
Opetustila
|
False
|
2
|
Mikroluokka
|
False
|
3
|
Kokoustila
|
Taulussa SpaceGroupType on kuvattu järjestelmän tuntemat saliryhmätyypit. Taulun tarkoitus on ensinnäkin helpottaa hakujen ja raporttien luontia (esim. hae kaikki Agoran salit tai näytä lista mielisaleista ). Toisaalta se erottelee vahvistusoikeuksien määrittämiseen käytetyt hallinnolliset saliryhmät muista ryhmistä. Jatkokehitystä ajatellen saliryhmillä voi esim. ilmoittaa oheisvarattavien toimituspaikat, eli salit, joihin tiettyä resurssia voi varata.
Taulun rakenne ja kenttien merkitys on kuvattu alla. Tauluun ei liity suhteita.
Deleted kertoo, onko saliryhmätyyppi poistettu taulusta.
SpaceGroupTypeID on saliryhmätyypin tunniste ja taulun avainkenttä.
Name sisältää saliryhmätyypin nimen järjestelmän oletuskielellä.
Taulukossa 8.2 on esimerkki taulun käytöstä.
Deleted
|
SpaceGroupTypeID
|
Name
|
False
|
1
|
Rakennus
|
False
|
2
|
Alue
|
False
|
3
|
Hallinnollinen
saliryhmä
|
Taulu sisältää kaikki järjestelmän tuntemat saliryhmät. Suurin osa saliryhmien toiminnasta ilmenee saliryhmätauluun liittyvissä suhteissa, jolloin varsinaiseen tauluun jää vain saliryhmän nimi ja kuvaus.
Taulun rakenne, kenttien merkitys ja suhteet on kuvattu alla.
Deleted kertoo, onko saliryhmä poistettu taulusta.
SpaceGroupID on saliryhmän tunniste ja taulun avainkenttä.
Name sisältää saliryhmän nimen järjestelmän oletuskielellä.
Description sisältää saliryhmän vapaamuotoisen kuvauksen.
SpaceGroupTypeID on saliryhmätyypin tunniste. Suhde SpaceGroupType-tauluun (luku 8.2.2) antaa saliryhmälle halutun tyypin.
AccessRightLevelID on käyttöoikeustason tunniste. Suhde AccessRightLevel-tauluuun (luku 2.2) määrittelee pienimmän oikeustason (esim. luennoitsija), jolla saliryhmään saa tehdä varauspyyntöjä.
Taulukossa 8.3 on esimerkki taulun käytöstä.
Deleted
|
SpaceGroupID
|
Name
|
Description
|
False
|
1
|
Agora
|
-
|
False
|
2
|
Mattilanniemi
|
-
|
SpaceGroupTypeID
|
AccessRightLevelID
|
1
|
2
|
2
|
2
|
Taulu yhdistää salit haluttuun saliryhmään. Rakenne mahdollistaa saman salin kuulumisen useampaan saliryhmään. Esimerkiksi MaD-alkuiset salit kuuluvat toisaalta MaD-nimiseen rakennukseen, toisaalta Mattilanniemen alueeseen. Lisäksi MaD-rakennuksen salit kuuluvat tiettyyn hallinnolliseen tilaryhmään, jolla määritetään salien vahvistusoikeudet. Taulu näkyy kuvassa 10 MtoM-suhteena taulujen SpaceGroup (luku 8.2.3) ja Space (luku 4.27) välillä.
Taulun rakenne, kenttien merkitys ja suhteet on kuvattu seuraavalla sivulla.
Deleted kertoo, onko suhde poistettu taulusta.
SpaceID on salin tunniste ja samalla osa taulun perusavainta. Suhde Space-tauluun (luku 4.27) yhdistää salin saliryhmään.
SpaceGroupID on saliryhmän tunniste ja samalla osa taulun perusavainta. Suhde SpaceGroup-tauluun (luku 8.2.3) yhdistää saliryhmän saliin.
Taulukossa 8.4 olevassa esimerkissä määritelläään salit 1 ja 2 kuulumaan saliryhmään 1.
Deleted
|
SpaceID
|
SpaceGroupID
|
False
|
1
|
1
|
False
|
2
|
1
|
Tämän taulun avulla kuvataan saliryhmien keskinäiset suhteet. Jokaisen saliryhmän kohdalta luetellaan kaikki sen aliryhmät. Lisäksi jokainen sali on itsensä aliryhmä. Loogisesti rakenne on samankaltainen organisaatioiden suhteiden määrityksen kanssa (luku 2.12). Puumainen rakenne mahdollistaa esim. Alueet-Rakennukset-Salit -tyylisen hierarkian. Salien vahvistusoikeudet periytyvät hierarkiassa niin, että tietyn saliryhmän vahvistajalla on vahvistusoikeus myös oman saliryhmänsä aliryhmiin. Taulu näkyy kuvassa 10 MtoM-suhteena SpaceGroup-taulusta (luku 8.2.3) itseensä.
Taulun rakenne, kenttien merkitys ja suhteet on kuvattu alla.
Deleted kertoo, onko suhde poistettu taulusta.
SpaceGroupID kertoo saliryhmän, jonka tiedoista on kyse. Suhde SpaceGroup-tauluun (luku 8.2.3).
SubSpaceGroupID määrittelee aliryhmän SpaceGroupID:n määrittelemälle saliryhmälle. Suhde SpaceGroup-tauluun (luku 8.2.3).
Taulukossa 8.5 olevassa esimerkissä määritellään saliryhmät 1 ja 2 kuulumaan saliryhmän 1 alle. Saliryhmä 2 kuuluu myös saliryhmään 3.
Deleted
|
SpaceTypeID
|
SubSpaceGroupID
|
False
|
1
|
1
|
False
|
1
|
2
|
False
|
3
|
2
|
Tauluun SpaceParameterType määritellään kaikki lisätietotyypit, joita voidaan määritellä yksittäisille saleille. Esimerkkinä määritellään salin tunnistenumero toisessa salinvarausjärjestelmässä. Alkuperäisen Kotka-järjestelmän parametritauluista poiketen tauluun on tallennettu suoraan parametrityypin nimi ilman erillistä Translation-taulua.
Taulun rakenne ja kenttien merkitys on kuvattu alla. Tauluun ei liity suhteita.
Deleted kertoo, onko tyyppi poistettu taulusta.
SpaceParameterTypeID on parametrityypin tunniste ja taulun avainkenttä.
Name on parametrityypin nimi.
Taulukossa 8.6 on esimerkki taulun käytöstä.
Deleted
|
SpaceParameterTypeID
|
Name
|
False
|
1
|
TimmiID
|
Tauluun SpaceParameter on tallennettu salin dynaamiset parametrit, joiden tyyppi on määritelty SpaceParameterType-taulussa (luku 8.2.6). Parametrit ovat merkkijonomuotoisia.
Taulun rakenne, kenttien merkitys ja suhteet on kuvattu alla.
Deleted kertoo, onko parametri poistettu.
SpaceID on salin tunniste ja osa taulun perusavainta. Suhde Space-tauluun (luku 4.27) määrittelee salin, jonka parametrista on kyse.
SpaceParameterTypeID on parametrityypin tunniste ja osa taulun perusavainta. Suhde SpaceParameterType-tauluun (luku 8.2.6) kertoo parametrin tyypin.
ParameterValue sisältää parametrin arvon.
Taulukossa 8.7 on esimerkki taulun käytöstä.
Deleted
|
SpaceID
|
SpaceTypeID
|
ParameterValue
|
False
|
1
|
1
|
2341
|
Taulussa määritetään henkilöiden vahvistusoikeudet saliryhmittäin. Henkilö voi olla joko varaustasoltaan "tavallinen" vahvistaja tai päävahvistaja, jolloin hänellä on oikeus muokata tavallisten vahvistajien vahvistamia varauksia. Saliryhmää saa muokata (lisätä tai poistaa henkilöitä tai saleja) ylläpitäjän lisäksi vain henkilö, jolla on muokkausoikeus tiettyyn saliryhmään. Lisäksi vahvistajien varaustasojen muokkaaminen edellyttää päävahvistajan oikeuksia. Taulu näkyy kuvassa 10 MtoM-suhteena taulujen SpaceGroup (luku 8.2.3) ja Person (luku 3.2) välillä.
Taulun rakenne, kenttien merkitys ja suhteet on kuvattu alla.
Deleted kertoo, onko suhde poistettu taulusta.
PersonID on henkilön tunniste ja samalla osa taulun perusavainta. Suhde Person-tauluun (luku 3.2) yhdistää henkilön saliryhmään.
SpaceGroupID on saliryhmän tunniste ja samalla osa taulun perusavainta. Suhde SpaceGroup-tauluun (luku 8.2.3) yhdistää saliryhmän henkilöön.
AccessLevel määrittelee henkilön varaustason ( 1=tavallinen vahvistaja, 2=päävahvistaja).
ModifyRight kertoo, onko henkilöllä oikeus saliryhmän muokkaamiseen ( 1=kyllä).
Taulukossa 8.8 kuvatussa esimerkissä henkilö 1 on saliryhmän 1 päävahvistaja ja hänellä on muokkausoikeus. Henkilö 2 on myös saliryhmän 1 vahvistaja, mutta hänellä ei ole muokkausoikeutta.
Deleted
|
PersonID
|
SpaceGroupID
|
AccessLevel
|
ModifyRight
|
False
|
1
|
1
|
2
|
1
|
False
|
2
|
1
|
1
|
0
|
Varaustaulut mahdollistavat varauspyynnöt ja vahvistukset tapahtumiin liittyviin saleihin. Varaus voidaan hoitaa Korppi-järjestelmän sisällä tai jonkin ulkopuolisen varausjärjestelmän avulla. Ulkopuolisten varausjärjestelmien mahdollisesti tarvitsemat lisätiedot merkitään valinnaisina parametreina.
Taulussa RequestState on kuvattu varaus- tai resurssipyynnön tila. Mahdollisia tiloja ovat esimerkiksi Käsittelyssä, Hyväksytty tai Peruttu.
Taulun rakenne ja kenttien merkitys on kuvattu alla. Tauluun ei liity suhteita.
Deleted kertoo, onko tilanne poistettu taulusta.
RequestStateID on tilanteen tunniste ja taulun perusavain.
Name sisältää tilanteen nimen.
Taulukossa 8.9 on esimerkki taulun käytöstä.
Deleted
|
RequestStateID
|
Name
|
False
|
1
|
Pyyntö
|
False
|
2
|
Käsittelyssä
|
False
|
3
|
Varaus
|
Reservation-taulu määrittelee yksittäiset salivaraukset ja muut resurssien varaukset. Taulu on oleellisesti laajennus Event- (luku 4.25) ja EventSpace-taulujen (luku 4.28) toiminnallisuudelle, mutta yhteensopivuuden säilyttämiseksi olemassaolevan koodin kanssa varaustiedot on määritelty omaan tauluunsa. Lisäksi taulu mahdollistaa liitännät ulkopuolisiin varausjärjestelmiin. Synkronointi EventSpace-taulun kanssa on kuvattu luvussa 12.1.
Taulun rakenne, kenttien merkitys ja suhteet on kuvattu alla.
Deleted kertoo, onko varaus poistettu taulusta.
ReservationID on varauksen tunniste ja taulun perusavain. Periaatteessa myös SpaceID ja EventID muodostavat avaimen taululle, mutta hakujen helpottamiseksi tauluun on lisätty erillinen avainkenttä.
SpaceID on salin tunniste. Suhde Space-tauluun (luku 4.27) määrittelee varatun salin. Yhteys tarvitaan, koska tapahtuma voi olla varattu useampaan saliin kerralla.
EventID on tapahtuman tunniste. Suhde Event-tauluun (luku 4.25) määrittelee tapahtuman, jota varten varaus on tehty. Myös aikatiedot saadaan Event-taulun kautta.
ResOrganisationID on organisaation tunniste. Suhde Organisation-tauluun (luku 2.9) määrittelee tapahtuman varaajaorganisaation (yleensä jokin laitos tai tiedekunta).
PayOrganisationID on organisaation tunniste. Suhde Organisation-tauluun (luku 2.9) määrittelee tapahtuman maksajaorganisaation, tarvittaessa opintolinjan tai projektin tarkkuudella.
RequestStateID Suhde RequestState-tauluun (luku 8.3.1) määrittelee varauspyynnön tilan.
UpdateTime kertoo viimeisimmän päivämäärän ja ajan, kun varauksen tietoja on muutettu.
Description sisältää lisätietoja varauksesta. Esim. vahvistaja voi merkitä tähän syyn varauspyynnön peruuttamiseen.
Inconsistent on järjestelmän sisäisessä käytössä oleva kenttä, jonka arvo on 1, jos varaustiedot ovat epäyhtenäiset EventSpace-taulun (luku 4.28) tietoihin verrattuna. Ylläpitäjä, varauksen tekijä tai varauksen vahvistaja voi korjata varauksen.
Taulukossa 8.10 on esimerkki taulun käytöstä.
Deleted
|
ReservationID
|
SpaceID
|
EventID
|
ResOrganisationID
|
False
|
1
|
1
|
1
|
1
|
False
|
2
|
1
|
3
|
1
|
PayOrgani- sationID
|
Request- StateID
|
UpdateTime
|
Description
|
Inconsistent
|
2
|
1
|
2002-01-08 20:00
|
-
|
0
|
2
|
2
|
2002-01-08 20:01
|
-
|
0
|
Tauluun ReservationParameterType määritellään kaikki lisätietotyypit, joita voidaan määritellä yksittäisille varauksille. Esimerkkinä varauksen tunnistenumero toisessa salinvarausjärjestelmässä. Alkuperäisen Kotka-järjestelmän parametritauluista poiketen tauluun on tallennettu suoraan parametrityypin nimi ilman erillistä Translation-taulua.
Taulun rakenne ja kenttien merkitys on kuvattu alla. Tauluun ei liity suhteita.
Deleted kertoo, onko tyyppi poistettu taulusta.
ReservationParameterTypeID on parametrityypin tunniste ja taulun avainkenttä.
Name on parametrityypin nimi.
Taulukossa 8.11 on esimerkki taulun käytöstä.
Deleted
|
ReservationParameterTypeID
|
Name
|
False
|
1
|
TimmiID
|
Tauluun ReservationParameter on tallennettu varauksen dynaamiset parametrit, joiden tyyppi on määritelty ReservationParameterType-taulussa (luku 8.3.3). Parametrit ovat merkkijonomuotoisia.
Taulun rakenne, kenttien merkitys ja suhteet on kuvattu alla.
Deleted kertoo, onko parametri poistettu.
ReservationID on varauksen tunniste ja osa taulun perusavainta. Suhde Reservation-tauluun (luku 0) määrittelee salin, jonka parametrista on kyse.
ReservationParameterTypeID on parametrityypin tunniste ja osa taulun perusavainta. Suhde ReservationParameterType-tauluun (luku 8.3.3) kertoo parametrin tyypin.
ParameterValue sisältää parametrin arvon.
Taulukossa 8.12 on esimerkki taulun käytöstä.
Deleted
|
ReservationID
|
ReservationParameterTypeID
|
ParameterValue
|
False
|
1
|
1
|
13245
|
Taulu määrittelee roolit, joita varaukseen liittyvillä henkilöillä voi olla. Erilaisia rooleja ovat esimerkiksi varauspyynnön tekijä , varauksen vahvistaja ja varaajan yhteyshenkilö (joita voi periaatteessa olla useitakin).
Taulun rakenne ja kenttien merkitys on kuvattu alla. Tauluun ei liity suhteita.
Deleted kertoo, onko rooli poistettu taulusta.
ReservationRoleID on roolin tunniste ja taulun avainkenttä.
Name sisältää roolin nimen.
Taulukossa 8.13 on esimerkki taulun käytöstä.
Deleted
|
ReservationRoleID
|
Name
|
False
|
1
|
Varauspyynnön
tekijä
|
False
|
2
|
Varaajan
yhteyshenkilö
|
ReservationPerson-taulu yhdistää henkilöt salivarauksiin. Henkilöt voivat liittyä salivaraukseen erilaisissa rooleissa, mutta pakollisia rooleja hyväksytyssä varauksessa ovat varauspyynnön tekijä , varauksen vahvistaja ja varaajan yhteyshenkilö . Henkilöt voivat olla myös samoja eri rooleissa ja yhteyshenkilöitä voi olla useampiakin. Kurssien tapahtumia varatessa varaajan yhteyshenkilö on usein sama kuin kurssin pitäjä. Taulu näkyy kuvassa 10 MtoMtoM-suhteena taulujen Person (luku 3.2), Reservation (luku 0) ja ReservationRole (luku 8.3.5) välillä.
Taulun rakenne, kenttien merkitys ja suhteet on kuvattu alla.
Deleted kertoo, onko suhde poistettu.
PersonID on henkilön tunniste ja samalla osa taulun perusavainta. Suhde Person-tauluun (luku 3.2) yhdistää henkilön varaukseen.
ReservationID on varauksen tunniste ja samalla osa taulun perusavainta. Suhde Reservation-tauluun (luku 0) yhdistää varauksen henkilöön.
ReservationRoleID on varausroolin tunniste ja samalla osa taulun perusavainta. Suhde ReservationRole-tauluun (luku 8.3.5) määrittelee henkilölle roolin, jossa hän toimii tietyn varauksen yhteydessä.
Taulukossa 8.14 olevassa esimerkissä henkilöt 1 ja 2 ovat eri rooleissa varauksessa 1. Henkilö 2 on lisäksi roolissa 1 varauksessa 2.
Deleted
|
PersonID
|
ReservationID
|
ReservationRoleID
|
False
|
1
|
1
|
1
|
False
|
2
|
1
|
2
|
False
|
2
|
2
|
1
|
Resurssipyyntötaulut ovat laajennus kurssikirjanpitomoduulin Resource- ja SpaceResource-taulujen toimintaan. Resurssipyynnöt voi määritellä tapahtumaryhmäkohtaisesti. Resurssipyyntö voi olla esimerkiksi "Ohjelmointikurssin 1. ohjausryhmä tarvitsee mikroluokan vähintään 20 henkilölle". Kiuru-projektin lopettaessa resurssipyyntötaulut on luotu tietokantaan, mutta järjestelmä ei käytä niitä. Taulut on tarkoitettu järjestelmän jatkokehityksen käyttöön.
Taulussa ResourceRequest on kuvattu yksittäisen resurssipyynnön tiedot. Resurssipyyntö on kokonaisuus, joka liittyy yleensä yksittäisen tapahtumaryhmän tulevien tapahtumien vaatimiin resursseihin. Resurssipyyntö koostuu viittauksista resursseihin sekä rajoitteesta määrätylle resurssille.
Taulun rakenne, kenttien merkitys ja suhteet on kuvattu seuraavalla sivulla.
Deleted kertoo, onko pyyntö poistettu.
ResourceRequestID on resurssipyynnön tunniste ja taulun perusavain.
Description sisältää vapaamuotoisen kuvauksen resurssipyynnöstä.
ContactPersonID on henkilön tunniste. Suhde Person-tauluun (luku 3.2) määrittelee resurssipyynnön tekijän (yleensä kurssin luennoitsija, jota ei tosin ole välttämättä määritelty kursseja suunniteltaessa). Resurssipyynnöt välittyvät tapahtumaryhmästä vastaavan organisaation sihteerille (esim. amanuenssi).
Taulukossa 8.15 on esimerkki taulun käytöstä.
Deleted
|
ResourceRequestID
|
Description
|
ContactPersonID
|
False
|
1
|
Luentosali
tietokantakurssille.
|
53
|
False
|
2
|
Tilat
ja laitteet uuteen demoryhmään.
|
80
|
Taulu yhdistää yksittäiset resurssipyyntötietueet koottuun resurssipyyntöön. Lisäksi jokaisen tietueen kohdalla on rajoite, jolla resurssipyyntöä tarkennetaan. Taulu näkyy kuvassa 10 MtoMtoM-suhteena taulujen ResourceRequest (luku 8.4.1), Resource (luku 4.29) ja SpaceType (luku 8.2.1) -taulujen välillä.
Taulun rakenne, kenttien merkitys ja suhteet on kuvattu alla.
Deleted kertoo, onko pyyntötietue poistettu taulusta.
ResourceRequestID on resurssipyynnön tunniste ja osa taulun perusavainta. Suhde ResourceRequest-tauluun (luku 8.4.1) määrittää resurssipyynnön, johon tietueet kuuluvat.
SpaceTypeID on salityypin tunniste ja osa taulun perusavainta. Suhde SpaceType-tauluun (luku 8.2.1) määrittää salityypin, jota halutaan varata.
ResourceID on resurssityypin tunniste ja osa taulun perusavainta. Suhde Resource-tauluun (luku 4.29) määrittää resurssityypin, joka vaaditaan resurssipyyntöön tietyssä salityypisssä.
Value sisältää rajoitteen resurssipyyntötietueelle. Kenttä on osittain samaa muotoa kuin SpaceResource-taulun (luku 4.31) Value-kenttä, mutta voi sisältää lisäehtoja (esim. ylä- tai alaraja, loogiset operaatiot). Kentän tarkempi muoto jätetään jatkokehityksen päätettäväksi.
Taulukon 8.16 esimerkissä pyydetään resurssipyyntöä 1 varten resurssia 1 . (luentosalin paikkamäärä) yli 100. Resurssipyynnössä 2 mikroluokan paikkamäärä oltava vähintään 20 ja (oletetaan, että resurssi 2 on tietokone) ja vähintään 10 konetta.
Deleted
|
ResourceRequestID
|
SpaceTypeID
|
ResourceID
|
Value
|
False
|
1
|
1
|
1
|
>100
|
False
|
2
|
2
|
1
|
>=20
|
False
|
2
|
2
|
2
|
>=10
|
Taulu yhdistää tapahtumaryhmät resurssipyyntöihin. Rakenne mahdollistaa resurssipyyntöjen jakamisen useamman eri tapahtumaryhmän kesken ilman muutoksia EventGroup-tauluun. Taulu näkyy kuvassa 10 MtoM-suhteena taulujen ResourceRequest (luku 8.4.1) ja EventGroup (luku 4.23) välillä.
Taulun rakenne, kenttien merkitys ja suhteet on kuvattu alla.
Deleted kertoo, onko suhde poistettu taulusta.
ResourceRequestID on resurssipyynnön tunniste ja samalla osa taulun perusavainta. Suhde ResourceRequest-tauluun (luku 8.4.1) yhdistää resurssipyynnön tapahtumaryhmään.
EventGroupID on tapahtumaryhmän tunniste ja samalla osa taulun perusavainta. Suhde EventGroup-tauluun (luku 4.23) yhdistää tapahtumaryhmän resurssipyyntöön.
Taulukossa 8.17 on esimerkki taulun käytöstä.
Deleted
|
ResourceRequestID
|
EventGroupID
|
False
|
1
|
430
|
Kiuru-projekti pyrki toteuttamaan varausmoduulin mahdollisimman vähillä muutoksilla olemassaoleviin tauluihin. Merkittävin muutos oli tyyppitiedon lisääminen Space-tauluun (katso luku 4.27). Translation-taulujen käytöstä luopumisen takia lisättiin uusia merkkijonokenttiä mm. parametritauluihin. Yhteensopivuuden säilyttämisen vuoksi myös aiemmat Translation-taulut ovat toistaiseksi tietokannassa.
Tauluun (ks. luvut 4.27 ja 7.12) lisättiin uusi kenttä SpaceTypeID. Lisäksi taulun merkitystä laajennettiin niin, että varsinaisen salin tai tilan lisäksi Space-tietue voi tarkoittaa oheisvarattavaa resurssia. Kentän kuvaus alla.
SpaceTypeID määrittelee salin tyypin, esimerkiksi mikroluokka. Jos tyyppi ei ole tiedossa, se voi olla NULL.
Samalla tauluun lisättiin seuraava suhde:
Esimerkki tilataulun käytöstä on taulukossa 8.18.
Deleted
|
SpaceID
|
Code
|
OrganisationID
|
SpaceTypeID
|
False
|
12
|
Ag
Auditorio 1
|
1
|
1
|
False
|
354
|
Kannettava
mikro 3
|
1
|
6
|
Tauluun (ks. luku 4.29) lisättiin nimikenttä korvaamaan aiemmin erillisessä ResourceTranslation-taulussa olleita tietoja. Kentän kuvaus alla.
Name sisältää resurssin tyypin järjestelmän oletuskielellä.
Esimerkki taulun käytöstä on taulukossa 8.19.
Deleted
|
ResourceID
|
Name
|
False
|
1
|
Paikkamäärä
|
False
|
2
|
Liitutaulu
|
Tauluun (ks. luku 3.12) lisättiin nimikenttä korvaamaan aiemmin erillisessä PersonParameterTypeTranslation-taulussa olleita tietoja. Kentän kuvaus alla.
Name sisältää parametrityypin nimen.
Esimerkki taulun käytöstä on taulukossa 8.20.
Deleted
|
PersonParameterTypeID
|
Name
|
False
|
1
|
Puhelin
|
False
|
2
|
WWW-osoite
|
Tauluun (ks. luku 2.4) lisättiin nimikenttä korvaamaan aiemmin erillisessä OrgParameterTypeTranslation-taulussa olleita tietoja. Kentän kuvaus alla.
Name sisältää parametrityypin nimen.
Esimerkki taulun käytöstä on taulukossa 8.21.
Deleted
|
OrgParameterTypeID
|
Name
|
False
|
1
|
Vastuualue
|
Luvussa esitellään Kottarainen-projektin kyselysovellukseen luomat taulut. Olemassa olevaa Kotka-tietokannan taulurakennetta hyödynnetään henkilöiden ja henkilöryhmien osalta. Henkilötaulua käytetään eri objektien omistajan viittauksessa, sekä vastauksen yksilöinnissä. Käyttäjäryhmää puolestaan käytetään toiminto-oikeuksien määrittelyssä.
Kuvasta 11 näkyy projektin suunnitteleman erillisen tietokantaosion rakenne. Kuvassa on myös edellä mainitut taulut Person, Courseinstance, Assignment, Assignmentoriginal ja Eventgroup, joihin Kottarainen-sovellus tavalla tai toisella liittyy. Projektin toteuttaminen taulujen tarkat määritelmät ovat tämän dokumentin liitteenä.
Luvussa esitellään Kottarainen-projektin toteuttaman sovelluksen kyselyiden rakenteen tallentamiseen liittyvät taulut. Taulurakenne määrittelee hierarkisen rakenteen, joka on havaittavissa myös sovelluksen kyselynäkymästä.
Taulussa Questionnaire on kuvattu kyselyihin liittyvät perustiedot. Kukin taulun rivi vastaa jokainen yhtä kyselyä, johon voi liittyä määrittelemätön määrä muita kyselyyn liittyviä alaosia, jotka esitellään myöhemmin. Taulun rakenne ja kenttien merkitys on kuvattu alla.
Deleted kertoo, onko alkio poistettu taulusta.
Questionnaireid on taulun avainkenttä.
Begintime on kyselyyn vastaamisen alkamisajankohta.
Endtime on kyselyyn vastaamisen päättymisajankohta.
Uri on kyselyyn liittyvä WWW-linkki.
Label on kyselyn otsikko.
Personid kertoo kyselyn omistajan. Relaatio Person-tauluun (luku 3.2).
Bankgroupid kertoo kyselyn ryhmittelyn kysymyspankissa. Relaatio Questionbankgroup-tauluun (katso luku 9.2.5).
Bankuserightid kertoo kyselyn käyttöoikeuden kysymyspankissa. Relaatio Questionbankuseright-tauluun (katso luku 9.2.6).
Taulukossa 9.1 on esimerkki taulun käytöstä.
Deleted
|
Questionnaireid
|
Begintime
|
Endtime
|
False
|
1
|
2006-09-15
00:35:00+03
|
2006-10-15
00:35:00+03
|
False
|
2
|
2005-09-15
12:00:00+03
|
2006-09-15
12:00:00+03
|
False
|
3
|
2003-09-20
00:00:00+03
|
2003-09-21
00:00:00+03
|
Uri
|
Label
|
Personid
|
Bankgroupid
|
Bankuserightid
|
www.nokia.fi
|
Autokysely
|
3
|
1
|
1
|
null
|
Kurssikysely
|
76
|
1
|
3
|
null
|
Mielipidekysely
|
1
|
3
|
2
|
Viitetaulussa Questionnaire_questiongroup on tieto kaikista yhteen kyselyyn liittyvistä kysymysryhmistä ja niiden tiloista. Taulun rakenne ja kenttien merkitys on kuvattu alla.
Deleted kertoo, onko alkio poistettu taulusta.
Questionnaireid on taulun ensimmäinen avainkenttä. Relaatio Questionnaire-tauluun (katso luku 9.1.1).
Questiongroupid on taulun toinen avainkenttä. Relaatio Questiongroup-tauluun (katso luku 9.1.3).
Questionstatusid kertoo kysymysryhmän tilan kyselyssä. Relaatio Questionstatus-tauluun (katso luku 9.2.3).
Ordernum kertoo kysymysryhmän järjestysnumeron kyselyssä tai toisen kysymysryhmän sisällä. Kun järjestysnumero on viitetaulussa, pystytään viitteenä kopioidun kyselyn järjestystä muuttamaan halutuksi esim. analysointivaiheessa.
Taulukossa 9.2 on esimerkki taulun käytöstä.
Deleted
|
Questionnaireid
|
Questiongroupid
|
Questionstatusid
|
Ordernum
|
False
|
2
|
4
|
3
|
1
|
False
|
2
|
2
|
2
|
2
|
False
|
9
|
7
|
7
|
1
|
Taulussa Questiongroup on kuvattu kysymysryhmään liittyvät perustiedot. Kukin taulun rivi vastaa yhtä kysymysryhmää, johon voi liittyä määrittelemätön määrä joko muita kysymysryhmiä tai kysymyksiä. Taulun alkiot voivat siis olla hierarkisesti toistensa lapsia Parentid-kentän määrittelemällä tavalla.Taulun rakenne ja kenttien merkitys on kuvattu alla.
Deleted kertoo, onko alkio poistettu taulusta.
Questiongroupid on taulun avainkenttä.
Parentid on relaatio saman taulun Questiongroupid-kenttään. Viite ilmentää suhdetta. Mikäli kentässä on arvo, kysymysryhmä kuuluu kysymysryhmään, johon viite osoittaa. Mikäli arvo on null, alkio on juurisolmu.
Uri on kysymysryhmään liittyvä WWW-linkki.
Label on kysymysryhmän otsikko.
Personid kertoo kysymysryhmän omistajan. Relaatio Person-tauluun (luku 3.2).
Bankgroupid kertoo kysymysryhmän ryhmittelyn kysymyspankissa. Relaatio Questionbankgroup-tauluun (katso luku 9.2.5).
Bankuserightid kertoo kysymysryhmän käyttöoikeuden kysymyspankissa. Relaatio Questionbankuseright-tauluun (katso luku 9.2.6).
Taulukossa 9.3 on esimerkki taulun käytöstä. Tauluun voi tallentaa mm. ryhmäkohtaisen WWW-osoitteen sekä ryhmän otsikon.
Deleted
|
Questiongroupid
|
Parentid
|
Uri
|
False
|
1
|
null
|
www.fi
|
False
|
2
|
1
|
null
|
False
|
3
|
1
|
null
|
Label
|
Personid
|
Bankgroupid
|
Bankuserightid
|
Yleistä
|
3
|
1
|
1
|
Suku
|
2
|
1
|
3
|
Perhe
|
1
|
3
|
2
|
Viitetaulussa Questiongroup_question on tieto kaikista yhteen kysymysryhmään liittyvistä kysymyksistä ja niiden tiloista. Taulun rakenne ja kenttien merkitys on kuvattu alla.
Deleted kertoo, onko alkio poistettu taulusta.
Questiongroupid on taulun ensimmäinen avainkenttä. Relaatio tauluun Questiongroup (katso luku 9.1.3).
Questionid on taulun toinen avainkenttä. Relaatio tauluun Question (katso luku 9.1.5).
Questionstatusid kertoo kysymyksen tilan kysymysryhmässä. Relaatio Questionstatus-tauluun (katso luku 9.2.3).
Ordernum kertoo kysymyksen järjestysnumeron kysymysryhmässä.
Taulukossa 9.4 on esimerkki taulun käytöstä.
Deleted
|
Questiongroupid
|
Questionid
|
Questionstatusid
|
Ordernum
|
False
|
2
|
1
|
1
|
1
|
False
|
2
|
2
|
1
|
2
|
False
|
3
|
3
|
1
|
1
|
Taulussa Question on kuvattu kysymykseen liittyvät perustiedot. Kukin taulun alkio vastaa yhtä kysymystä, johon voi liittyä yksi tai useampia kysymyskenttiä. Taulun rakenne ja kenttien merkitys on kuvattu alla.
Deleted kertoo, onko alkio poistettu taulusta.
Questionid on taulun avainkenttä.
Questiontypeid kertoo kysymyksen tyypin. Relaatio tauluun Questiontype (katso luku 9.2.4).
Uri on kysymykseen liittyvä WWW-linkki.
Label on kysymyksen otsikko.
Personid kertoo kysymyksen omistajan. Relaatio Person-tauluun (luku 3.2).
Bankgroupid kertoo kysymyksen ryhmittelyn kysymyspankissa. Relaatio tauluun Questionbankgroup (katso luku 9.2.5).
Bankuserightid kertoo kysymyksen käyttöoikeuden kysymyspankissa. Relaatio tauluun Questionbankuseright (katso luku 9.2.6).
Taulukossa 9.5 on esimerkki taulun käytöstä.
Deleted
|
Questionid
|
Questiontypeid
|
Uri
|
False
|
1
|
1
|
www.hk.fi
|
False
|
2
|
1
|
null
|
False
|
3
|
2
|
null
|
Label
|
Personid
|
Bankgroupid
|
Bankuserightid
|
Nimi
|
1
|
1
|
1
|
Puhelin
|
1
|
1
|
3
|
Ikä
|
1
|
1
|
2
|
Taulussa Questionfield on kuvattu kysymyksen kenttiin liittyvät perustiedot. Taulun alkiot ilmentävät jokainen yhtä vastattavaa alkiota (käytännössä HTML:n input-kenttää). Taulun rakenne ja kenttien merkitys on kuvattu alla.
Deleted kertoo, onko alkio poistettu taulusta.
Defaultvalue on käyttäjälle näkyvä oletusarvo.
Questionfieldid on taulun avainkenttä.
Questionid kertoo mihin kysymykseen kenttä kuuluu. Relaatio Question-tauluun (katso luku 9.1.5).
Weight on kentälle annettu erillinen painoarvo, jota voidaan käyttää esimerkiksi valintaruutukysymyksissa painottamaan vastauksien arvoa.
Ordernum kertoo kentän järjestysnumeron kysymyksen alla.
Label on kentän otsikko.
Genericname yksilöi Questionfieldin kyselyn sisällä. Tunnistetta voidaan käyttää hyväksi erilaisten analyysien laatimisessa.
Taulukossa 9.6 on esimerkki taulun käytöstä.
Deleted
|
Questionfieldid
|
Questionid
|
Defaultvalue
|
False
|
1
|
1
|
null
|
False
|
2
|
3
|
on
|
False
|
3
|
3
|
null
|
Weight
|
Ordernum
|
Label
|
Genericname
|
1
|
1
|
Etunimi
|
null
|
1
|
1
|
0-50
|
i_1
|
2
|
2
|
50-100
|
i_2
|
Taulussa Questionresult on kuvattu yhteen kysymyskenttään liittyvää yhden henkilön vastausta. Taulun rakenne ja kenttien merkitys on kuvattu alla.
Deleted kertoo, onko alkio poistettu taulusta.
Questionresultid on taulun avainkenttä.
Questionfieldid kertoo kysymyskentän, johon vastaus kuuluu. Relaatio Questionfield-tauluun (katso luku 9.1.6).
Personid kertoo vastauksen kohdehenkilön. Relaatio Person-tauluun (luku 3.2).
Markerid kertoo vastauksen antajan tai asettajan. Relaatio Person-tauluun (luku 3.2).
Value on vastauksen arvo.
Taulukossa 9.7 on esimerkki taulun käytöstä.
Deleted
|
Questionresultid
|
Questionfieldid
|
Personid
|
Markerid
|
Value
|
False
|
1
|
1
|
50
|
50
|
Olli
|
False
|
2
|
2
|
50
|
50
|
on
|
False
|
3
|
3
|
50
|
50
|
off
|
Luvussa esitellään edellisessä luvussa esiteltyjen rakenneosien tauluja määrittävät ja luokittelevat taulurakenteet. Erilaisia määrittelyjä ovat käyttöoikeudet, rakenneosien tilat, kysymyksen tyyppi, rakenneosien käyttöoikeudet ja käyttöoikeus kysymyspankissa, sekä HTML-tulostukseen liittyvät parametrit.
Viitetaulussa Questionnairerelation on tieto kyselyn suhteista muihin kokonaisuuksiin, esim. käyttäjäryhmiin. Taulu sitoo siis yhteen esimerkiksi kyselyn, käyttöoikeuden ja käyttäjäryhmän. Taulun kautta kyselyyn voi liittyä myös kurssin ilmentymä tai opinnäyte. Taulun rakenne ja kenttien merkitys on kuvattu alla.
Deleted kertoo, onko alkio poistettu taulusta.
Questionnaireid on taulun ensimmäinen avainkenttä. Relaatio Questionnaire-tauluun (katso luku 9.1.1).
Eventgroupid liittää kyselyn käyttäjäryhmään. Relaatio eventgroup-tauluun (katso luku 4.23)
Courseinstanceid liittää kyselyn kurssin ilmentymään. Relaatio courseinstance-tauluun (katso luku 4.6)
Assignmentid liittää kyselyn opinnäytteiden asioihin. Relaatio assignment-tauluun (katso luku 5.36)
Originalid liittää kyselyn opinnäytteiden asioihin. Relaatio assignmentoriginal-tauluun (katso luku 5.31)
Questionnaireactionid on taulun kolmas avainkenttä. kertoo käyttäjäryhmän käyttöoikeuden kyselyyn. Relaatio Questionnaire-action-tauluun (katso luku 9.3.2).
Taulukossa 9.8 on esimerkki taulun käytöstä.
Deleted
|
Questionnaireid
|
Eventgroupid
|
Questionnaireactionid
|
Courseinstanceid
|
False
|
2
|
|
1
|
543
|
False
|
2
|
2
|
2
|
|
False
|
9
|
|
1
|
234
|
Assignmentid
|
Originalid
|
5
|
56
|
5678
|
|
|
9568
|
Määrittelytaulussa Questionnaireaction on tieto kaikista käyttöoikeuksista, joita käyttäjäryhmä voi kyselylle saada. Taulun rakenne ja kenttien merkitys on kuvattu alla.
Deleted kertoo, onko alkio poistettu taulusta.
Questionnaireactionid on taulun avainkenttä.
Name kertoo sanallisesti oikeuden nimen.
Taulukossa 9.9 on esimerkki taulun käytöstä.
Deleted
|
Questionnaireactionid
|
Name
|
False
|
1
|
Vastaus
|
False
|
2
|
Muokkaus
|
False
|
3
|
Vastausten
katsominen
|
Määrittelytaulussa Questionstatus on tieto kaikista tiloista, joina kysymysryhmä voi olla liitettynä kyselyyn tai kysymys kysymysryhmään. Taulun rakenne ja kenttien merkitys on kuvattu alla.
Deleted kertoo, onko alkio poistettu taulusta.
Questionstatusid on taulun avainkenttä.
Name kertoo sanallisesti tilan nimen.
Taulukossa 9.10 on esimerkki taulun käytöstä.
Deleted
|
Questionnaireactionid
|
Name
|
False
|
1
|
normaali
|
False
|
2
|
vain
luku
|
False
|
3
|
estetty
|
Määrittelytaulussa Questiontype on tieto kaikista kysymystyypeistä. Taulun rakenne ja kenttien merkitys on kuvattu alla.
Deleted kertoo, onko alkio poistettu taulusta.
Questiontypeid on taulun avainkenttä.
Name kertoo sanallisesti tyypin nimen.
Taulukossa 9.11 on esimerkki taulun käytöstä.
Deleted
|
Questiontypeid
|
Name
|
False
|
1
|
Yksirivinen
tekstikenttä
|
False
|
2
|
Monirivinen
tekstikenttä
|
False
|
3
|
Valintaruuturyhmä
|
Määrittelytaulussa Questionbankgroup on tieto kaikista ryhmistä, joihin kyselyn rakenneosat voivat kysymyspankissa kuulua. Taulun alkioilla voidaan viitata virallisuusasteeseen tai tiettyyn organisaatioon tai ryhmään (siis vain loogisesti, ei tietokannan tasolla). Taulun rakenne ja kenttien merkitys on kuvattu alla.
Deleted kertoo, onko alkio poistettu taulusta.
Questionbankgroupid on taulun avainkenttä.
Name kertoo kysymyspankkiryhmän selitteen.
Taulukossa 9.12 on esimerkki taulun käytöstä.
Deleted
|
Questiontypeid
|
Name
|
False
|
1
|
Vain
oma
|
False
|
2
|
Kaikille
julkinen
|
False
|
3
|
Oma
organisaatio
|
Määrittelytaulussa Questionbankuseright on tieto kaikista oikeuksista, joilla kyselyn rakenneosia voi uudelleenkäyttää kysymyspankissa. Arvojen mukaan määritellään erilaisia näkyvyys-, ja kopiointitoimintoja uudelleenkäytön yhteydessä. Taulun rakenne ja kenttien merkitys on kuvattu alla.
Deleted kertoo, onko alkio poistettu taulusta.
Questionbankuserightid on taulun avainkenttä.
Name kertoo uudelleenkäyttöoikeuden nimen.
Taulukossa 9.13 on esimerkki taulun käytöstä.
Deleted
|
Questionbankuserightid
|
Name
|
False
|
1
|
Kopioi
viitteenä
|
False
|
2
|
Tee
kopio
|
False
|
3
|
Lukeminen
|
Viitetaulussa Questionfield_htmlparameter on tieto kysymyskenttään liittyvistä HTML-tulostuksen ulkoasuun tai HTML-objektien käyttäytymiseen vaikuttavista tekijöistä. Kentän alkio yhdistää kysymyskentän ja HTML-parametrityypin toisiinsa. Alkiossa on myös tieto parametrin arvosta. Taulun rakenne ja kenttien merkitys on kuvattu alla.
Deleted kertoo, onko alkio poistettu taulusta.
Questionfieldid on taulun ensimmäinen avainkenttä. Relaatio tauluun Questionfield (katso luku 9.1.6).
Parametertypeid on taulun toinen avainkenttä. Relaatio tauluun Htmlparametertype (katso luku 9.2.8).
Value kertoo suureen arvon.
Taulukossa 9.14 on esimerkki taulun käytöstä.
Deleted
|
Questionfieldid
|
Parametertypeid
|
Value
|
False
|
1
|
1
|
40
|
False
|
2
|
1
|
60
|
False
|
2
|
2
|
10
|
Määrittelytaulussa Htmlparametertype on lueteltu HTML-parametreja, joilla voidaan vaikuttaa HTML-objektien ulkoasuun tai käyttäytymiseen. Taulun rakenne ja kenttien merkitys on kuvattu alla.
Deleted kertoo, onko alkio poistettu taulusta.
Parametertypeid on taulun avainkenttä.
Name kertoo HTML-parametrin nimen.
Taulukossa 9.15 on esimerkki taulun käytöstä.
Deleted
|
Questionbankuserightid
|
Name
|
False
|
1
|
width
|
False
|
2
|
height
|
False
|
3
|
valign
|
Määrittelytaulussa Qnaireuserstatustype on lueteltu eri tiloja, joissa käyttäjä voi olla kyselyyn nähden. Tilan avulla voidaan nähdä esimerkiksi, kuinka moni on käynyt katsomassa kyselyä, mutta ei vastannut. Taulun rakenne ja kenttien merkitys on kuvattu alla.
Deleted kertoo, onko alkio poistettu taulusta.
Userstatustypeid on taulun avainkenttä.
Value kertoo tilan tyypin.
Taulukossa 9.16 on esimerkki taulun käytöstä.
Deleted
|
Userstatustypeid
|
Value
|
False
|
1
|
Puutteellinen
vastaus
|
False
|
2
|
Vastannut
|
False
|
3
|
Katsonut
kyselyä.
|
Viitetaulu Questionnaire_userstatus liittää yhteen kyselyn, henkilön ja henkilön tilan suhteessa kyselyyn. Taulun rakenne ja kenttien merkitys on kuvattu alla.
Deleted kertoo, onko alkio poistettu taulusta.
Questionnaireid on taulun avainkenttä, viittaa tauluun Questionnaire (katso luku 9.21)
Personid on taulun toinen avainkenttä, viittaa tauluun Person (katso luku 3.2)
Userstatustypeid on taulun kolmas avainkenttä, viittaa tauluun Qnaireuserstatustype (katso luku 9.3.9)
Taulukossa 9.17 on esimerkki taulun käytöstä.
Deleted
|
Questionnaireid
|
Personid
|
Userstatustypeid
|
False
|
1
|
4
|
1
|
False
|
3546
|
645
|
3
|
False
|
345
|
2
|
4
|
Luvussa esitetään esitellään kyselyn rakenneosia vapaasti määrittelevä metatietorakenne. Rakenne poikkeaa edellisessä luvussa esitellystä rakenteesta siten, ettei metatietoihin viitata rakenneosien tauluissa viitekentällä. Rakenneosan alkion määrittely tapahtuu erillisessä informaation sisältävässä viitetaulussa, jossa yhdistetään kohdealkio ja informaation tyyppi. Tällä rakenteella voidaan lisätä määrittelytyyppejä myöhemmin tarvitsematta muuttaa rakennetaulujen sisältöä. Luvun tauluihin tallennetaan metatietojen lisäksi myös kyselyn arvioijan sanallisia arvioita.
Määrittelytaulussa Questionparametertype on tieto kaikista niistä määrittelytyypeistä (metatietotyypeistä) joita rakenneosan alkioille voidaan antaa. Taulun rakenne ja kenttien merkitys on kuvattu alla.
Deleted kertoo, onko alkio poistettu taulusta.
Parametertypeid on taulun avainkenttä.
Name kertoo määrittelytyypin (metatiedon) nimen.
Taulukossa 9.18 on esimerkki taulun käytöstä.
Deleted
|
Questionparametertypeid
|
Name
|
False
|
1
|
Asiayhteys
|
False
|
2
|
Kuvaus
|
False
|
3
|
Avainsanat
|
Viitetaulussa Questionnaire_parameter on tieto kyselyä määrittävistä metatiedoista. Taulun alkio yhdistää kyselyn taulun questionparameter_owner (katso luku 9.47) kautta määrittelytyyppiin, sekä sisältää myös arvon määrittelylle. Taulun rakenne ja kenttien merkitys on kuvattu alla.
Deleted kertoo, onko alkio poistettu taulusta.
Questionnaireid on taulun ensimmäinen avainkenttä. Relaatio tauluun Questionnaire (katso luku 9.1.1).
Parametertypeid on taulun toinen avainkenttä. Relaatio tauluun Questionparametertype (katso luku 9.3.1).
Value kertoo määrittelyn arvon (suure määrittelylle).
Taulukossa 9.19 on esimerkki taulun käytöstä.
Deleted
|
Questionnaireid
|
Parametertypeid
|
Value
|
False
|
1
|
2
|
Kurssin
ABC123 kysely
|
False
|
1
|
3
|
Kurssi
ABC123 Pekkala
|
False
|
2
|
1
|
Arvausseminaarin
palaute
|
Viitetaulussa Questiongroup_parameter on tieto kysymysryhmää määrittävistä metatiedoista. Taulun alkio yhdistää ryhmän taulun questionparameter_owner (katso luku 9.47) kautta määrittelytyyppiin. Taulun rakenne ja kenttien merkitys on kuvattu alla.
Deleted kertoo, onko alkio poistettu taulusta.
Questiongroupid on taulun ensimmäinen avainkenttä. Relaatio tauluun Questiongroup (katso luku 9.1.3).
Parametertypeid on taulun toinen avainkenttä. Relaatio tauluun Questionparametertype (katso luku 9.3.1).
Value kertoo määrittelyn arvon (suure määrittelylle).
Taulukossa 9.20 on esimerkki taulun käytöstä.
Deleted
|
Questiongroupid
|
Parametertypeid
|
Value
|
False
|
1
|
2
|
Henkilö
|
False
|
1
|
3
|
Etunimi
Sukunimi
|
False
|
2
|
3
|
Mielipide
tunnit
|
Viitetaulussa Question_parameter on tieto kysymystä määrittävistä metatiedoista. Taulun alkio yhdistää kysymyksen taulun questionparameter_owner (katso luku 9.47) kautta määrittelytyyppiin.
Deleted kertoo, onko alkio poistettu taulusta.
Questionid on taulun ensimmäinen avainkenttä. Relaatio tauluun Question (katso luku 9.1.5).
Parametertypeid on taulun toinen avainkenttä. Relaatio tauluun Questionparametertype (katso luku 9.3.1).
Value kertoo määrittelyn arvon (suure määrittelylle).
Taulukossa 9.21 on esimerkki taulun käytöstä.
Deleted
|
Questionid
|
Parametertypeid
|
Value
|
False
|
1
|
2
|
Etunimi
|
False
|
1
|
3
|
Nimi
henktiedot Etunimi
|
False
|
3
|
3
|
Ikä
haarukka syntymäaika
|
Viitetaulussa Questionresult_parameter on tieto kysymyksen vastausta määrittävistä metatiedoista. Taulun alkio yhdistää vastauksen taulun questionparameter_owner (katso luku 9.47) kautta määrittelytyyppiin Tähän tauluun voi kysymyksen laatija esimerkiksi kommentoida annettua vastausta. Taulun rakenne ja kenttien merkitys on kuvattu alla.
Deleted kertoo, onko alkio poistettu taulusta.
Questionresultid on taulun ensimmäinen avainkenttä. Relaatio tauluun Questionresult (katso luku 9.1.7).
Parametertypeid on taulun toinen avainkenttä. Relaatio tauluun Questionparametertype (katso luku 9.3.1).
Value kertoo määrittelyn arvon (suure määrittelylle).
Taulukossa 9.22 on esimerkki taulun käytöstä.
Deleted
|
Questionresultid
|
Parametertypeid
|
Value
|
False
|
1
|
4
|
Onkohan
oikea nimi?
|
False
|
2
|
4
|
Hyvä,olen
samaa mieltä.
|
False
|
3
|
4
|
Ensi
vuonna pidetään
enemmän
taukoja!
|
Määrittelytaulussa Questionparameterownertype on tieto kaikista niistä määrittelytyypeistä (omistajatyypeistä), joita metatiedoille voidaan antaa. Taulun rakenne ja kenttien merkitys on kuvattu alla.
Deleted kertoo, onko alkio poistettu taulusta.
Parameterownertypeid on taulun avainkenttä, joka määrittää kyseiselle omistajatyypille id:n.
Name kertoo kyseisen omistajatyypin nimen.
Taulukossa 9.23 on esimerkki taulun käytöstä.
Deleted
|
Parameterownertypeid
|
Name
|
False
|
1
|
Questionnaire
|
False
|
2
|
Questiongroup
|
False
|
3
|
Question
|
Viitetaulussa Questionparameter_owner on tieto siitä, mitkä metatietotyypit kuuluvat millekin omistajalle. Yksi alkio siis yhdistää toisiinsa metatietotyypin, omistajatyypin sekä viitetaulun kautta omistajan (katso luvut 9.42-9.45. Taulun rakenne ja kenttien merkitys on kuvattu alla.
Deleted kertoo, onko alkio poistettu taulusta.
Parametertypeid on taulun avainkenttä, joka kertoo parametrin tyypin.
Ownertypeid on taulun toinen avainkenttä, joka kertoo omistajatyypin nimen.
Ordernum kertoo kyseisen viittauksen järjestysnumeron. Tämän perusteella metatiedot esitetään käyttäjälle halutussa järjestyksessä.
Taulukossa 9.24 on esimerkki taulun käytöstä.
Deleted
|
Parametertypeid
|
Ownertypeid
|
Ordernum
|
False
|
1
|
1
|
1
|
False
|
2
|
1
|
2
|
False
|
3
|
1
|
3
|
Tässä luvussa esitellään muita KOTKA-järjestelmään toteutettuja taulurakenteita.
Tällä taululla ja JavaBeanilla AutoNumber.java toteutetaan SQL-92 -standardiin kuulumaton AutoNumber-tietotyyppi. Tätä tarvitaan avainkentän arvon asettamisessa kaikissa avainkentän sisältävissä tauluissa. Taulu sisältää seuraavat kentät:
TableName on ko. taulun nimi.
Value on taulun seuraava vapaa avainkentän arvo.
Esimerkki AutoNumber-taulun käytöstä on taulussa 10.1. Esimerkissä seuraavalle Person-tauluun lisättävälle henkilölle annetaan tunnisteeksi 3 ja seuraavalle Organisation-tauluun lisättävälle organisaatiolle 7.
TableName
|
Value
|
Person
|
3
|
Organisation
|
7
|
Tällä taululla monikielistetään käyttöliittymän staattiset tekstit. Taulun kentät ovat seuraavat:
File kertoo JSP-tiedoston, johon kyseinen teksti kuuluu.
Element kertoo, monesko elementti tiedostossa teksti on.
LanguageID on käytetyn kielen tunniste.
Text on elementtiä vastaava monikielistetty teksti.
Esimerkki LocalizedUI-taulun käytöstä on taulukossa 10.2, jossa määritellään ShowLogoutVerify.jsp-sivun ensimmäinen elementti suomeksi ja englanniksi. Kyseessä on selvästi jokin käyttöliittymän painike.
File
|
Element
|
LanguageID
|
Text
|
ShowLogoutVerify
|
1
|
1
|
Back
|
ShowLogoutVerify
|
1
|
2
|
Takaisin
|
Taulukko 10-2: Esimerkki LocalizedUI-taulun sisällöstä.
Ini-taululla määritellään järjestelmän sisäisesti tarvitsemaa yleistä tietoa, kuten järjestelmävastaavan sähköpostiosoite ja sähköpostipalvelimen osoite. Taulu sisältää seuraavat kentät:
Name kertoo parametrin nimen.
Value sisältää parametrin arvon.
Esimerkki Ini-taulun käytöstä on taulukossa 10.3, jossa määritellään ylläpitäjän sähköpostiosoite ja sähköpostipalvelimen osoite. Näitä tarvitaan esimerkiksi uusia salasanoja lähetettäessä.
Name
|
Value
|
AddministratorEMail
|
Kotkaadmin@st.jyu.si
|
SMTPServer
|
smtp.jyu.fi
|
Taulukko 10-3: Esimerkki Ini-taulun sisällöstä.
Module-taululla määritellään Kotka-järjestelmässä käytettävät moduulit. Tällä hetkellä tätä taulua käytetään alkeelliseen käyttötapaustasoiseen käyttöoikeuksien hallintaan JavaBeanin UseModule.java kanssa. Näkyvin sovelluskohde on moduulilistan luominen käyttöliittymän pystypalkkiin. Taulu sisältää seuraavat kentät:
Deleted kertoo, onko moduuli poistettu.
ModuleID on taulun avainkenttä.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki Module-taulun käytöstä on taulukossa 10.4, jossa määritellään ShowLogoutVerify.jsp-tiedoston ensimmäinen elementti suomeksi ja englanniksi.
Deleted
|
ModuleID
|
False
|
1
|
False
|
2
|
Taulukko 10-4: Esimerkki Module-taulun sisällöstä.
ModuleLanguage-taululla määritellään nimet moduuleille kaikilla järjestelmän käyttämillä kielillä. Taulu sisältää seuraavat kentät:
Deleted kertoo onko, käännös poistettu.
ModuleID kertoo käännettävän moduulin
LanguageID kertoo käännöksessä käytettävän kielen
Name sisältää käännöksen.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki ModuleLanguage-taulun käytöstä on taulukossa10.5, jossa määritellään kurssikirjanpitomoduulin nimi suomeksi ja englanniksi.
Deleted
|
ModuleID
|
LanguageID
|
Name
|
False
|
1
|
1
|
Course
bookkeeping
|
False
|
1
|
2
|
Kurssikirjanpito
|
Taulukko 10-5: Esimerkki ModuleLanguage-taulun sisällöstä.
Tässä luvussa käsitellään niitä moduuleita, joiden tietokantaratkaisujen suunnittelu on joko pahasti kesken tai suunnittelua ei ole vielä edes aloitettu.
KOTKA-projektiorganisaation tietämys hallintomoduulin tarpeista rajoittuu pääosin Timo Tiihosen haastatteluun (katso Kotka-projektin projektikansion haastatteluosuus). Tässä luvussa on kuitenkin esitetty joidenkin haastattelussa esiin nousseiden ominaisuuksien toteutusmahdollisuuksia.
Hallintopuolen asioita sivuaa myös tietotekniikan laitoksen käyttöön tarjottu MS-Access -pohjainen henkilörekisterisovellus . Projektiryhmä osallistui kyseisen sovelluksen esittelytilaisuuteen, mutta tilaisuuden anti ominaisuuksien kartoittamisen osalta jäi hyvin laihaksi. Kyseisen sovelluksen käsikirja löytyy projektikansiosta. Lisäksi tietoa halinto-osuuden tarvitsemasta datasta saatiin Heinolan kansalaisopiston hallinto-ohjelmistoa koskevista suunnitelmista . Näiden pohjalta ei kuitenkaan ole ryhdytty mihinkään laajempiin toimenpiteisiin.
Haastattelun mukaan toimistohenkilökunnan tulee pystyä siirtämään järjestelmässä olevaa tietoa omaan paikalliseen työasemaansa. Käytännössä tämä tarkoittaa usein tiedon siirtämistä MS-Office -toimisto-ohjelmistopaketin sovelluksiin, sillä ne ovat valitettavan yleisiä toimistokäytössä. Samat siirtoperiaatteet toki toimivat myös muiden valmistajien tuotteiden kohdalla. Tiedonsiirtomuodoista puhdas ASCII-siirto olisi varmaan helpoin toteuttaa. Mahdollisesti voitaisiin ajatella jotain XML-pohjaista siirtotapaa.
Hallintomoduulin tietokannan täytyy sisältää projektienhallinnan vaatimat taulurakenteet. Jokaisesta projektista tarvitaan ainakin tunniste, nimi ja tilinumero. Tämän taulun nimi voisi olla vaikka Project ja kenttien nimet ProjectID, Name ja Account.
Järjestelmässä olevat henkilökunnan edustajat täytyy pystyä liittämään projekteihin. Yksi henkilö voi kuulua useampaan kuin yhteen projektiin, joka tarkoittaa many-to-many -suhdetta Person- ja Project-taulujen välille. Tällöin tietokantaan täytyy lisätä taulu ProjectPerson, joka sisältää kentät PersonID ja ProjectID.
Haastattelun perusteella henkilökunta voisi tehdä ehdotuksia (esim. hankinnat, virkamatkat ja vierailijoiden kutsuminen) Kotka-järjestelmän kautta. Esityksiä varten tietokantaan tarvittaisiin taulu nimeltä Suggestion, joka voisi sisältää vaikkapa seuraavat kentät:
Deleted kertoo, onko esittäjä perunut aloitteensa.
Person1ID määrittelee esityksen tekijän.
TypeID määrittelee, minkä tyyppisestä esityksestä on kyse. Tyypit määritellään erillisessä Type-taulussa.
Handled kertoo, onko esitys käsitelty.
Accepted kertoo, onko esitys mennyt läpi.
Date kertoo käsittelyhetket.
Person2ID kertoo käsittelijän.
Esitystyypit pitäisi määritellä jossain taulussa samaan tapaan kuin muutkin tyypinmäärittelyt järjestelmässä on tehty. Lisäksi tyypit täytyy monikielistää. Erityyppisiin esityksiin liittyvät lisätiedot voitaisiin toteuttaa samankaltaisella rakenteella kuin lisätietojen lisääminen henkilölle PersonParameter-taulukon avulla. Lisäksi hyväksymiskäytäntö saattaa vaihdella esityksen tyypin mukaan, jolloin yllä oleva yksinkertainen rakenne ei sellaisenaan riitä.
Laitoksen nykyisistä, tulevista ja menneistä vierailijoista haluttiin listat reaaliajassa laitoksen WWW-sivuille. Tällaiseen tulokseen päästään liittämällä halutuille sivuille JavaBeaneja käyttävä JSP-osa, joka hakee tiedot tietokannasta jokaisella hakupyynnöllä.
Tietokannan osalta tarvitaan lähinnä tiedot vierailijasta ja vierailun isännästä sekä tieto saapumis- ja lähtöpäivistä, jotta henkilö voidaan sijoittaa oikeaan kategoriaan (käyneet vierailijat, parhaillaan vierailevat henkilöt, tulevat vierailijat). Vierailijoita varten voi joko luoda oman Visitors-taulun, tai sitten sijoittaa heidät muiden henkilöiden tapaan Person-tauluun. Jälkimmäinen tapa on sikäli parempi, että vierailijoille todennäköisesti pitää joka tapauksessa luoda käyttäjätunnus KOTKA-järjestelmään. PersonParameterType-tauluun pitää todennäköisesti tällöin määritellä jonkinlainen vierailijatyyppi.
Jonkin verran tämän moduulin tarvitsemasta tietokannasta on määritelty kurssikirjanpitoon liittyvien taulujen yhteydessä luvussa 4 sekä salivarausten yhteydessä luvussa 8. Tämän moduulin tietokantaosuuden täytyy kuitenkin mahdollistaa jonkinlainen esitysjärjestelmä, kuten hallinnon kohdalla luvussa 11.1. Ominaisuuden avulla esimerkiksi demoluokkaa kaipaava luennoitsija tai kursseja suunnitteleva amanuenssi kirjaisi järjestelmään tiedot uudesta tilatarpeesta. Esitys menisi edelleen jonkinlaisen hyväksymisseulan läpi (kuten luvussa 11.1) ja lopullinen päätös olisi taas luettavissa järjestelmästä.
Varauspyyntöjen tietoihin toivottiin liitettäväksi enemmän varattavalle tilalle asetettavia vaatimuksia (kuten piirtoheitin tai tussitaulu) kuin pelkän salinumeron. Tällöin salivarauksista päättävä taho voi yrittää sijoittaa varaukset sopiviin saleihin. Vaaditut ominaisuudet löytyvät Resource-taulusta ja SpaceResource-taulun avulla löydetään vaatimuksia vastaavat salit. Tarkempi rakenne on esitetty salivarausten yhteydessä luvussa 8. Lisätietoja on Kotka-projektin projektikansion haastatteluosuudessa Elina Laiho-Logrénin haastattelussa sekä Kiuru-projektin haastatteluraportissa.
Samaan toteutukseen täytyy integroida lisäksi kurssien ja tenttien sijoittaminen, sillä pidettävät kurssit vaativat saleja ja ilman kursseja ei ole tenttejäkään. Lisäksi kurssien pitää sijoittua toisiinsa nähden loogisesti. Tenttien sijoittamiseksi on jo valmiita ohjelmistoja , joista on lisätietoa projektikansion liiteosuudesta.
Saliryhmien vahvistusoikeudet pitäisi jatkokehityksessä määritellä yksittäisten henkilöiden lisäksi tapahtumaryhmäkohtaisesti. Koska sekä sali- että tapahtumaryhmät voidaan määritellä rekursiivisesti, yliryhmiin kuuluvat jäsenet pitää päivittää ajan tasalle aina yksittäistä aliryhmää muutettaessa (vastaava toiminto on organisaatioiden määrittelyssä). Tämä nopeuttaa oleellisesti tiedonhakua. Taulujen päivitykset voidaan automatisoida käyttämällä herättimiä ( trigger) tai sääntöjä ( rule), jotka tosin eivät ole SQL92-standardin mukaisia.
Alkuperäisenä ideana oli, että ylläpitäjä voisi laittaa käyttöliittymän Portaali-sivulle esimerkiksi järjestelmän toiminnasta tiedottavia viestejä tai muita ajankohtaista tietoa, joita näytettäisiin esimerkiksi viimeiset viisi kappaletta. Ideaa kuitenkin laajennettiin siten, että esimerkiksi kurssien pitäjä voisi lähettää kurssiin liittyviä viestejä, joka näkyisi vain kurssille ilmoittautuneille. Toteutukseltaan ominaisuus muistuttaisi ilmoitustaulua, jolta jokainen näkisi häntä koskevat viestit.
Viestimoduuli tarvitsisi todennäköisesti Message-taulun taulukon viestejä varten. Taulukon kenttinä pitäisi olla ainakin viestin lähettäjä ( PersonID), viestin lähetysaika ( SendTime) sekä tieto viestin voimassaolon päättymisestä. Lisäksi kohderyhmä pitäisi määritellä jollain tavoin. Yhden henkilön tapauksessa riittää pelkkä tunniste, mutta muuten tarvitaan jotain postituslistan tapaista. Samaa modulia voisi olla mahdollista käyttää myös tiedotukseen laitoksen henkilökunnalle tai eri opiskelijaryhmille joko sähköpostitse tai ajankohtaista-sivun välityksellä.
Luvussa kuvataan Kotka-järjestelmän tietokannan luomisessa ja käsittelyssä käytettyjä PostgreSQL:n ominaisuuksia, jotka eivät kuulu SQL92-standardiin.
Kiuru-sovelluksen eräänä toteutusperiaatteena oli, että uudet taulut vaikuttaisivat mahdollisimman vähän olemassaoleviin rakenteisiin. Salivaraukset muodostetaan lisäämällä Reservation-tauluun (luku 8.3.2) tietue, jossa on viitteet Event- (luku 4.25) ja Space- tauluihin (luku 4.27) kuvaamaan salivarauksen aikaa ja paikkaa.
Vastaava rakenne on toteutettu aiemmin kurssikirjanpitomoduulissa EventSpace-taulussa (luku 4.28). Taulu on käytössä mm. määritettäessä paikkoja opetustapahtumille, tenttipäiville ja opiskelijoiden henkilökohtaisille tapahtumille, mutta se ei ota huomioon salivarauksia.
Salivarauksen yhteydessä EventSpace- ja Reservation- taulujen viitteiden täytyy aina osoittaa samoihin saleihin ja tapahtumiin. Muuten käyttöliittymä saattaa näyttää tapahtuman sijoitetun saliin, jota ei ole sille varattu tai sitten varauksen, jota ei ole yhdistetty mihinkään järkevään tapahtumaan. Tämän varmistaminen vaatisi järjestelmän olemassaolevan koodin läpikäymisen kaikkien SQL-lauseiden osalta, jotka viittaavat EventSpace-tauluun.
Kiuru-projektiryhmä päätyi varmistamaan tietojen yhtenäisyyden PostgreSQL-palvelimelle sijoitetun säännön ( rule) avulla. Säännöt eivät kuulu SQL92-standardiin, mutta tässä tilanteessa säännön käyttö säästi merkittävästi koodaustyötä. Lisäksi useimmissa tietokannan hallintajärjestelmissä on vastaava toiminnallisuus (tosin säännön muoto saattaa vaihdella).
Synkronointisääntö toimii periaatteeltaan seuraavasti: jos tietokannassa päivitetään olemassaolevan EventSpace-taulun tapahtuma- tai paikkaviitettä ja on olemassa vastaava Reservation-taulun tietue, merkitään vastaavaan Reservation-tietueen Inconsistent-kenttään arvo 1. Tällöin epäyhtenäisyydet saadaan selville yksinkertaisella haulla ja esim. ylläpitäjä voi ne korjata.