Ismo Horppu
Markku Mielityinen
Markku Vire
Hannu Pekkanen
Jussi Kuittinen
Matti Lupari
Tietokantaraportti 17.1.2002
Jyväskylän yliopisto
Tietotekniikan laitos
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)
Työn nimi: Tietokantaraportti
Työ: Raportti
syksyllä 2000 Kotka-projektiryhmän, keväällä 2001 Korppi- ja
Halko-projektiryhmän sekä syksyllä 2001 Kolibri-projektiryhmän suunnittelemasta
ja toteuttamasta tietokannasta.
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 sekä Kolibri-projektiryhmä syksyllä 2001. Tietokantaraportti sisältää suunnitellun ja toteutetun tietokannan taulujen kuvaukset ER-kaavioineen. Dokumentti on suunnattu erityisesti järjestelmän kehitystyötä jatkaville projektiryhmille.
Avainsanat: Tietokanta, ER-kaavio,
PostgreSQL
Versio
|
Päiväys
|
Tehnyt
|
1.0 |
21.12.2000 |
Markku Vire |
1.1 |
9.1.2001 |
Markku Vire |
1.2 |
11.1.2001 |
Markku Vire |
1.3
|
11.6.2001
|
Hannu Pekkanen ja Jussi Kuittinen
|
1.4 |
13.6.2001 |
Hannu Pekkanen |
1.5 9.1.2002 Matti Lupari
2.1 Organisaatioiden ER-kaavio
2.3 AccessRightLevelTranslation
2.5 OrgParameterTypeTranslation
2.8 OrganisationTypeTranslation
3.1 Henkilöiden ja henkilöstön hallinnan
ER-kaavio
3.18 PersonParameterTypeLanguage
3.23 Halko-projektin lisäykset
Person-moduuliin
3.23.4 TeacherParameterTypeLanguage
4.1 Kurssikirjanpidon ER-kaavio
4.5 DescriptionTypeTranslation
4.10 CourseInstanceCompletionType
4.20 CalculatePointsCourseInstance
4.45 CourseInstParamIntTypeLang
4.53 Halko-projektin lisäykset Course
Bookkeeping-moduuliin
4.53.5
CourseFundingOrganisation
5.1 Opinnäytemodulin käyttöoikeudet
5.2 Opinnäytemodulin ER-kaavio
5.11 TranslatedSubjectDetailType
5.14 SubjectOrgRelationshipType
(SubjectOrganisationRelationshipType)
5.15 TrSubjectOrgRelationshipType
(TranslatedSubjectOrganisationRelationshipType)
5.18 WorksSubjectAccessRightType
5.19 TrWorkSubjectAccessRightType (TranslatedWorksSubjectAccessRightType)
5.21 WorksActionAccessGroupType
5.22 TrWorksActionAccessGroupType
(TranslatedWorksActionAccessGroupType)
5.26 SubjectOrgRelationship
(SubjectOrganisationRelationship)
6.
Maksujen ja palkkojen hallinta
7.
Kolibri-projektin tekemät muutokset Course Bookkeeping -moduuliin
7.1 Kurssikirjanpito-moduulin ER-kaavio
7.9 EventGroup-tauluun tehdyt muutokset
7.10 Event-tauluun tehdyt muutokset
7.11 GroupParticipant-tauluun tehdyt
muutokset
7.12 Space-tauluun tehdyt muutokset
9.
Kehitysasteella olevien moduulien taulutarpeet
9.1 Henkilöstön, projektien ja
raha-asioiden hallinta ja suunnittelu..
9.2 Salivarausten sekä kurssien ja tenttien
sijoittumisen suunnittelu
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. 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.
Suuresta työmäärästä johtuen ER-kaavioiden teossa rajoituttiin muutamaan keskeiseen moduuliin (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.
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önhallintamoduulin. Luku 4 keskittyy kurssikirjanpidon taulurakenteen selvittämiseen ja luku 5 opinnäyteosuuteen. Luku 6 esittelee maksujen ja palkkojen hallinnan. Luku 7 käsittää Kolibri-projektin toteuttamat lisäykset ja muutokset järjestelmän tietokantaan. Luku 8 esittelee muita järjestelmän tarvitsemia tauluja. Luvussa 9 kerrotaan lyhyesti niistä moduuleista, joiden suunnittelu on oleellisilta osiltaan kesken tai lähes kokonaan aloittamatta.
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.
Kuva 1. Organisaatioiden suhteiden ja tietojen ER-kaavio.
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:
· Relaatio Language-tauluun (katso luvun 2.3 taulu AccessRightLevelTranslation) määrittelee käyttöoikeusluokkia vastaavat tekstit.
· Relaatio OrgParameterType-tauluun taas määrittelee, mitkä käyttäjäryhmät saavat muuttaa minkäkin tyyppisiä organisaatioparametreja (katso luvun 2.6 taulu OrgParameterTypeProt).
· Taulussa AccessRight (luku 2.13) käytetään tässä taulussa määriteltyjä käyttäjäryhmiä yksittäisten käyttäjien oikeustasojen määrittelyyn.
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:
· Relaatio Language-tauluun (luku 3.13) valitsee käännöksen kielen.
· Relaatio AccessRightLevel-tauluun (luku 2.2) valitsee käännettävän käyttöoikeustason.
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ä.
Tauluun liittyvät relaatiot ovat seuraavat:
· Relaatio AccessRight-tauluun (luku 2.2) määrittelee (katso luvun 2.6 taulu OrgParameterTypeProt), mitkä käyttäjärymät saavat editoida minkäkin tyyppisiä organisaatioparametereja.
· Relaatio Language-tauluun (luku 3.13) taas tarvitaan monikielistystä varten (katso luvun 2.5 taulu OrgParameterTypeTranslation).
· Taulussa OrganisationParameter (luku 2.11) käytetään tässä taulussa määriteltyjä tyyppejä organisaation dynaamisten tietojen tallennukseen.
Esimerkki taulun käytöstä on taulukossa 3.
Deleted |
OrgParameterTypeID |
False |
1 |
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:
· Relaatio Language-tauluun määrittelee käännöksen kohdekielen.
· Relaatio OrgParameterType-tauluun määrittelee käännettävän parametrityypin.
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:
· Relaatio AccessRightLevel-tauluun määrittelee käyttöoikeusluokan.
· Relaatio OrgParameterType-tauluun määrittelee parametrityypin, jota oikeus koskee.
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:
· Relaatio Language-tauluun (luku 3.13) tarvitaan tyyppien monikielistykseen (katso luvun 2.8 taulu OrganisationTypeTranslation).
· Organisation-taulussa (luku 2.9) käytetään tässä taulussa määriteltyjä tyyppejä organisaatioiden luokitteluun.
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:
· Relaatio OrganisationType-tauluun (luku 2.7) määrittelee käännettävän organisaatiotyypin.
· Relaatio Language-tauluun (luku 3.13) määrittelee kohdekielen.
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:
· Organisaatioiden nimet määritellään Language-tauluun (luku 3.13) liittyvällä relaatiolla.
· Relaatio OrganisationType-tauluun (luku 2.7) määrittelee organisaation tyypin.
· Relaatio Organisation-tauluun itseensä määrittelee organisaatiolle aliorganisaatiot (katso luvun 2.12 taulu OrgRelationship).
· Organisation-taulua käytetään myös tauluista OrganisationParameter (luku 2.11), AccessRight (luku 2.13), Space (luku 4.22) ja Person (luku 3.2) määrittelemään, mihin organisaatioon annettu data liittyy.
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.
OrganisationID määrittelee organisaation, jonka nimeä oltiin kääntämässä.
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
· Relaatio Organisation-tauluun (luku 2.9) määrittää organisaatio, johon parametri liittyy.
· Relaatio OrgParameterType-tauluun (luku 2.4) määrittää parametrin tyypin.
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:
· Relaatiot Organisation-tauluun (luku 2.9) määrittelevät organisaation ja alaorganisaation.
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:
· Relaatio Organisation-tauluun (luku 2.9) määrittelee organisaation, jossa oikeus on voimassa.
· Relaatio AccessRightLevel-tauluun (luku 2.2) määrittelee kyseessä olevan oikeustason.
· Relaatio Person-tauluun (luku 3.2) määrittelee henkilön, jonka oikeuksista on kyse.
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:
· Relaatio OrgSeasonPeriod-tauluun (luku 2.15) määrittelee organisaation, joka käyttää määriteltyjä tietoja.
· Relaatio Period-tauluun (luku 2.17) määrittelee kyseessä olevan periodin.
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:
· Relaatio Organisation-tauluun (luku 2.9) määrittelee organisaation, joka käyttää määriteltyjä tietoja.
· Relaatio OrganisationalSeason-tauluun (luku 2.14) määrittelee kyseessäolevan organisaatioseasonin.
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:
· Relaatio OrganisationalSeason-tauluun (luku 2.14) määrittelee käännettävän organisaatiotyypin.
· Relaatio Language-tauluun (luku 3.13) määrittelee kohdekielen.
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:
· Organisaatioiden nimet määritellään Language-tauluun (luku 3.13) liittyvällä relaatiolla.
· Relaatio OrganisationalSeason-tauluun (luku 2.14) määrittelee periodiin liittyvän organisationseasonin.
· Relaatio BudgetFocus-tauluun (luku 2.19) määrittelee kustantavan organisaation.
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:
· Relaatio Period-tauluun (luku 2.17) määrittelee käännettävän periodtyypin.
· Relaatio Language-tauluun (luku 3.13) määrittelee kohdekielen.
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:
· Relaatio Period-tauluun (luku 2.17) määrittelee periodin tyypin.
· Relaatio Organisation-tauluun määrittelee organisaation tyypin.
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:
· Relaatio Organisation-tauluun määrittelee organisaatiotyypin.
· Relaatio Address-tauluun määrittelee osoitetyypin.
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 7.1.
Kuva 2: Kotka-tietokannan Person-osion ER-kaavio
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 |
OrganisationID |
False |
1 |
Matti |
Matti |
Meikäläinen |
1 |
1 |
False |
2 |
Maija |
Maija |
Meikäläinen |
2 |
1 |
Account |
Password |
RegisteredOn |
LastLogin |
LastLogout |
SessionTimeout |
AutoLogout |
matti |
ittam |
00-11-19 |
00-12-19 |
00-12-19 |
1800 |
False |
maija |
ajiam |
00-11-24 |
00-12-24 |
00-12-24 |
900 |
True |
SocSecBirth |
SocSecCentury |
SocSecEnd |
121267 |
- |
789J |
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.
Tauluun liittyvät relaatiot ovat seuraavat:
Esimerkki PersonParameterType-taulun käytöstä on
taulukossa 30.
Deleted |
PersonParameterTypeID |
False |
1 |
False |
2 |
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 liittyvät relaatiot ovat seuraavat:
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.
Kuva 3. Halko-projektin Person-moduulin ER-kaavio
Taulu laajentaa Person-taulua (luku 3.2) ja määrittelee Personin alityypin eli opettajan. Taulu sisältää seuraavat kentät:
Deleted |
ilmoittaa, onko tietue merkitty poistetuksi. |
PersonID |
määrittelee opettajan henkilönumeron. |
SalaryOfficeNum |
määrittelee opettajan palkanlaskennan henkilönumeron.. |
SalaryGroupID |
määrittelee opettajan normaalin tuntipalkkion. |
Tauluun liittyvät relaatiot ovat seuraavat:
·
Relaatio SalaryGroup-tauluun määrittelee opettajan normaalin
tuntipalkkion.
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:
·
Relaatio Person-tauluun (luku 3.2) määrittelee opettajan
henkilöllisyyden.
·
Relaatio TeacherParameterType-tauluun (luku
3.23.3) määrittää parametrin tyypin.
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:
· Relaatio TeacherParameterType-tauluun (luku 3.23.3) määrittelee monikielistettävän parametrin tyypin.
· Relaatio Language-tauluun (luku 3.13) määrittelee käytettävän kielen.
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
Kuva 4: Kurssikirjanpito-osion ER-kaavio.
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:
· Relaatio Language tauluun (luku 3.13) tarvitaan kurssinimien kääntämisessä (katso CourseTranslation, luku 4.3).
· Course-taulun tietoja käytetään CourseInstance-taulussa (luku 4.6) pohjatietoina.
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:
· Relaatio Course-tauluun (luku 4.2) määrittelee käännettävän kurssin.
· Relaatio Language-tauluun (luku 3.13) määrittelee kohdekielen.
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:
· Relaatio Language-tauluun (luku 3.13) tarvitaan tyyppinimien monikielistämiseksi (katso DescriptionTypeTranslation, luku 4.5).
· Relaatio CourseInstance-tauluun (luku 4.6) yhdistää tyypitetyt kurssikuvaukset kursseihin (katso CourseDescription, luku 4.7).
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:
· Relaatio DescriptionType-tauluun (luku 4.4) määrittelee käännettävän kuvaustyypin.
· Relaatio Language-tauluun (luku 3.13) valitsee kohdekielen.
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:
· Relaatio Course-tauluun (luku 4.2) määrittelee pidettävän kurssin tyypin.
· Relaatio Description- ja Language-tauluihin määrittelee DescriptionType-taulussa määritellyistä osista koostuvan kurssikuvauksen kaikilla järjestelmän tuntemilla kielillä (katso CourseDescription, luku 4.7).
· Relaatio CompletionType-tauluun (luku 4.8) määrittelee kurssille mahdolliset suoritustavat (katso CourseInstanceCompletionType, luku 4.10).
· Relaatio CourseParticipant-tauluun (luku 4.13) yhdistää henkilöt kursseille.
· Relaatio EventGroup-tauluun (luku 4.23) yhdistää kurssin ja kurssiin liittyvät opetusryhmät toisiinsa.l
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:
· Relaatio CourseInstance-tauluun määrittelee kurssin, johon kuvaus liittyy.
· Relaatio DescriptionType-tauluun määrittelee kurssikuvauksen osan tyypin.
· Relaatio Language-tauluun määrittelee kuvauksessa käytetyn kielen.
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:
· Relaatio CourseInstance-tauluun (luku 4.6) määrittelee, millä tavoin mikäkin kurssi voidaan suorittaa (katso CourseInstanceCompletionType, luku 4.10).
· Relaatio Language-tauluun (luku 3.13) tarvitaan suoritustapojen monikielistämiseksi.
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:
· Relaatio CompletionType-tauluun (luku 4.8) määrittelee käännettävän suoritustavan.
· Relaatio Language-tauluun (luku 3.13) määrittelee käännöksessä käytettävän kielen.
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:
· Relaatio CourseInstance-tauluun (luku 4.6) määrittelee kurssin, jonka suoritustavasta on kyse.
· Relaatio CompletionType-tauluun (luku 4.8) määrittelee suoritustavan.
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ä.
· Relaatio CourseParticipant-tauluun (luku 4.13) määrittelee, jokaiselle kurssiin liittyvälle henkilölle käyttäjäryhmän.
· Relaatio Language-tauluun (luku 3.13) tarvitaan käyttäjäryhmien monikielistämiseen.
· Relaatio Field-tauluun (luku 4.32) määrittelee, minkä käyttäjäryhmän edustajat saavat käsitellä mitäkin kenttätyyppiä (katso FieldProtection, luku 4.41).
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.
· Relaatio UserGroup-tauluun (luku 4.11) määrittelee käännettävän käyttäjäryhmän.
· Relaatio Language-tauluun (luku 3.13) määrittelee käännöksessä käytetyn kielen.
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.
· Relaatio Person-tauluun (luku 3.2) määrittelee kurssille osallistuvan henkilön.
· Relaatio CourseInstance-tauluun (luku 4.6) määrittelee kurssin, johon henkilö liittyy.
· Relaatio UserGroup-tauluun (luku 4.11) määrittelee henkilölle käyttäjäryhmän.
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.
· Relaatio Person-tauluun (luku 3.2) määrittelee tarvittavien henkilöiden tiedot.
· Relaatio Grade-tauluun (luku 4.15) määrittelee arvosana-asteikon.
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.
· Relaatio Points-tauluun (luku 4.17) tarvitaan, sillä Points-taulusta saadaan tiedot pistemääristä, jotka vaikuttavat arvosteluun.
· Grade-taulussa määriteltyjä arvosanoja käytetään Finished-taulussa (luku 4.14).
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.
· Relaatio Grade-tauluun (luku 4.15) määrittelee käännettävän arvosanan.
· Relaatio Language-tauluun (luku 3.13) määrittelee käännöksessä käytetyn kielen.
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.
· Relaatio Grade-tauluun (luku 4.15) tarvitaan, sillä Grade-tauluun tallennetaan tiedot arvosanasta.
· Relaatio CalculatePoints-tauluun (luku 4.18) tarvitaan, sillä sen avulla lasketaan arvosana johon pistemäärä oikeuttaa.
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ä
· Relaatio Points-tauluun (luku 4.17) tarvitaan, sillä Points-taulu sisältää tiedot pistemääristä.
· Relaatio CalculatePointsCourseInstance-tauluun (luku 4.20) tarvitaan, sillä sen avulla määritellään kurssi-instanssi johon pisteidenlasku kuuluu.
Deleted |
CalculatePointsID |
False |
1 |
False |
2 |
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.
· Relaatio CalculatePoints-tauluun (luku 4.18) määrittelee käännettävän arvostelufunktion.
· Relaatio Language-tauluun (luku 3.13) määrittelee käännöksessä käytetyn kielen.
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:
· Relaatio CalculatePoints-tauluun (luku 4.18) määrittelee tapahtumaryhmän tyypin (esim demo tai luento).
· Relaatio CourseInstance-tauluun (luku 4.6) liittää arvosteluasteikon oikeaan kurssiin.
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:
· Relaatio Language-tauluun (luku 3.13) määrittelee ryhmän nimen (katso GroupTypeTranslation, luku 4.22).
· GroupType-taulun arvoja käytetään EventGroup-taulussa (luku 4.23) ryhmän tyypin ilmoittamiseen.
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:
· Relaatio GroupType-tauluun (luku 4.21) määrittelee käännettävän ryhmätyypin.
· Relaatio Language-tauluun (luku 3.13) määrittelee käännöksessä käytetyn kielen.
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:
· Relaatio GroupType-tauluun (luku 4.21) määrittelee tapahtumaryhmän tyypin (esim demo tai luento).
· Relaatio EventGroupRelationship-tauluun (luku 7.8) määrittelee tapahtumaryhmän suhteen muihin tapahtumaryhmiin.
· Relaatio CourseInstance-tauluun (luku 4.6) liittää ryhmän oikeaan kurssiin. Tämä liitos voi myös puuttua, mikäli tapahtumaryhmä ei kuulu mihinkään kurssiin (esim. laitosneuvoston kokous).
· Relaatio GroupParticipant-tauluun (luku 4.24) liittää ryhmään ilmoittautuneet henkilöt ryhmään.
· Relaatio Event-tauluun (luku 4.25) määrittelee tapahtumaryhmän yksittäiset tapahtumat.
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 |
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:
· Relaatio Person-tauluun (luku 3.2) määrittelee henkilön, joka on ilmoittautunut ryhmään.
· Relaatio EventGroup-tauluun (luku 4.23) kertoo ryhmän, johon ilmoittautuminen on tehty.
· Relaatio tauluun Comment (luku 7.7) liittää ryhmään ilmoittautumishetkeen kommentin.
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:
· Relaatio EventGroup-tauluun (luku 4.23) kertoo tapahtumaryhmän, johon taphtuma liittyy.
· Relaatio GroupParticipant-tauluun (luku 4.24) kertoo tapahtumaan ilmoittautuneet henkilöt.
· Relaatio Person-tauluun (luku 3.2) määrittelee tilaisuudelle pitäjät (katso EventPerson, luku 4.21).
· Relaatio Space-tauluun (luku 4.27) kertoo tilaisuudelle varatut tilat (katso EventSpace, luku 4.23).
· Relaatio Result-tauluun (luku 4.42) liittää kurssikirjanpitomerkinnät johonkin tilaisuuteen.
· Relaatio Visibility-tauluun (luku 7.2) liittää tapahtumalle näkyvyysarvon.
· Relaatio Priority-tauluun (luku 7.4) liittää tapahtumalle prioriteetin.
· Relaatio Note-tauluun (luku 7.6) liittää tapahtumaan käyttäjien mahdolliset palautteet ja kommentit.
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 |
Esimerkki Event-taulun käytöstä on taulukossa 69.
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:
· Relaatio Event-tauluun (luku 4.25) määrittelee tilaisuuden.
· Relaatio Person-tauluun (luku 3.2) kertoo tilaisuuden pitäjän.
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. 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.
Tauluun liittyvät relaatiot ovat seuraavat:
· Relaatio Resource-tauluun (luku 4.29) määrittelee tilassa sijaitsevat resurssit.
· Relaatio Organisation-tauluun (luku 2.9) määrittelee organisaation, jonka hallintaan tila kuuluu.
· Relaatio Event-tauluun (luku 4.25) kertoo, mihin tilaisuuksiin tila on varattu (katso EventSpace, luku 4.28).
Esimerkki tilataulun käytöstä on taulukossa 71.
Deleted |
SpaceID |
Code |
OrganisationID |
False |
1 |
MaA102 |
1 |
False |
2 |
MaD202 |
1 |
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. 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:
· Relaatio Event-tauluun (luku 4.25) määrittelee tapahtuman, jonka tilanvarauksista on kyse.
· Relaatio Space-tauluun (luku 4.27) kertoo tapahtumalle varatun tilan.
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ä.
Tauluun liittyvät relaatiot ovat seuraavat:
· Relaatio Language-tauluun (luku 3.13) tarvitaan resurssinimien monikielistämiseksi (katso luvun 4.30 taulu ResourceTranslation).
· Relaatio Space-tauluun (luku 4.27) määrittelee resurssin johonkin tilaan (katso luvun 4.31 taulu SpaceResource).
Taulun sisältö voisi näyttää esimerkiksi taulukossa 73 esitetyn kaltaiselta.
Deleted |
ResourceID |
False |
1 |
False |
2 |
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:
· Relaatio Resource-tauluun (luku 4.29) määrittelee käännettävän resurssin.
· Relaatio Language-tauluun (luku 3.13) määrittelee käännöksessä käytetyn kielen.
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:
· Relaatio Resource-tauluun (luku 4.29) määrittelee resurssin tyypin.
· Relaatio Space-tauluun (luku 4.27) määrittelee tilan, jossa resurssi sijaitsee.
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:
· Relaatio CourseInstance-tauluun (luku 4.6) määrittelee kurssin, jonka kentistä on kyse.
· Relaatio UserGroup-tauluun (luku 4.11) määrittelee minkä käyttäjäryhmien edustajat saavat muuttaa kentän arvoa (katso FieldProtection, luku 4.41).
· Relaatio Result-tauluun (luku 4.42) määrittelee yksittäiselle kurssikirjanpitomerkinnälle kenttätyypin.
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ä.
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:
· Relaatio Field-tauluun (luku 4.32) määrittelee käännettävän kentän.
· Relaatio Language-tauluun (luku 3.13) määrittelee käännöksessä käytetyn kielen.
Deleted |
FieldID |
LanguageID |
Name |
False |
1 |
1 |
demo |
False |
2 |
2 |
Tentti |
Taulukko 77: Esimerkki FieldTranslation-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:
· Relaatio Field-tauluun (luku 4.32) määrittelee kenttätyypin, jonka kentistä on kyse.
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:
· Relaatio FieldType-tauluun (luku 4.34) määrittelee käännettävän kentän.
· Relaatio Language-tauluun (luku 3.13) määrittelee käännöksessä käytetyn kielen.
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:
· Relaatio FieldChoice-tauluun (luku 4.38) määrittelee kenttätyypin, jonka kentistä on kyse.
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:
· Relaatio Choice-tauluun (luku 4.36) määrittelee käännettävän kentän.
· Relaatio Language-tauluun (luku 3.13) määrittelee käännöksessä käytetyn kielen.
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:
· Relaatio Field-tauluun (luku 4.32) määrittelee kentän.
· Relaatio Choice-tauluun (luku 4.36) kertoo valitun kentän.
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:
· Relaatio Field-tauluun (luku 4.32) määrittelee kenttätyypin.
· Relaatio UserGroup-tauluun (luku 4.11) määrittelee käyttäjäryhmät.
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:
· Relaatio FieldGroup-tauluun (luku 4.39) määrittelee käännettävän kentän.
· Relaatio Language-tauluun (luku 3.13) määrittelee käännöksessä käytetyn kielen.
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:
· Relaatio Field-tauluun (luku 4.32) määrittelee kenttätyypin.
· Relaatio UserGroup-tauluun (luku 4.11) kertoo ryhmän, jolla on oikeus käyttää kyseisen kenttätyypin arvoja.
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:
· Relaatio Event-tauluun (luku 4.25) kertoo tapahtuman, johon merkintä liittyy.
· Relaatio Field-tauluun (luku 4.32) määrittelee merkinnälle kenttätyypin.
· Relaatiot Person-tauluun (luku 3.2) kertovat suorittajan ja merkitsijän.
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:
·
Relaatio CourseInstanceParamIntType-tauluun (luku 4.43) määrittelee
määrittelee parametrin tyypin.
·
Relaatio CourseInstance-tauluun (luku 4.6) määrittelee kurssin,
jota parametri määrittää.
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:
·
Relaatio CourseInstParamIntType-tauluun (luku 4.44) määrittelee
monikielistettävän parametrin.
·
Relaatio Language-tauluun (luku 3.13) määrittelee
käytettävän kielen.
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:
·
Relaatio CourseStatus-tauluun (luku 4.46) määrittelee
monikielistettävän tilan.
·
Relaatio Language-tauluun (luku 3.13) määrittelee
käytettvän kielen.
Esimerkki taulun sisällöstä on taulukossa 91.
Deleted |
StatusID |
LanguageID |
Name |
False |
1 |
1 |
Keskeytetty |
False |
1 |
2 |
Canceled |
Taulukko 91: Esimerkki T-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:
·
Relaatio ObjectGroup-tauluun (luku 4.48) määrittelee
monikielistettävän kohteen.
·
Relaatio Language-tauluun (luku 3.13) määrittelee
käytettävän kielen.
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:
·
Relaatio ObjectGroup-tauluun (luku 4.48) määrittelee kurssia
kuvailevan alkion.
·
Relaatio CourseInstance-tauluun (luku 4.6) määrittelee kyseessä
olevan kurssin.
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:
·
Relaatio Level-tauluun (luku 4.51) määrittelee
monikielistettävän tason.
·
Relaatio Language-tauluun (luku 3.13) määrittelee
käytettävän kielen.
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.
Kuva 5. Halko-projektin Course Bookkeeping-moduulin
ER-kaavio
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:
·
Relaatio Subject-tauluun (luku 4.53.1) määrittelee
monikielistettävän aineen.
·
Relaatio Language-tauluun (luku 3.13) määrittelee käytettävän
kielen.
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:
·
Relaatio Course-tauluun määrittelee kurssin, jolla
ainetta opetetaan.
·
Relaatio Subject-tauluun määrittelee opetettavan aineen.
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:
·
Relaatio Organisation-tauluun (luku 2.9) määrittelee
organisaation, jossa tiettyä ainetta opetetaan.
·
Relaatio Subject-tauluun (4.53.1) määrittelee opetettavan
aineen.
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:
·
Relaatio Organisation-tauluun (luku 2.9) määrittelee
maksajaorganisaation.
·
Relaatio CourseInstance-tauluun (luku 4.6) määrittelee kurssin,
jota maksajaorganisaatio rahoittaa.
Esimerkki taulun sisällöstä on taulukossa 101.
Deleted |
OrganisationID |
CourseInstanceID |
False |
|
|
False |
|
|
Taulukko 101: Esimerkki CourseFundingOrganisation-taulun sisällöstä.
Tietokannan opinnäytemoduuliin tallennetaan tiedot opinnäytteistä sekä niiden ohjausprosessin vaiheista. Käsiteltäviä opinnäytteitä ovat mm. harjoitustyöt, erikoistyöt, työprojektit, työharjoittelu ja tutkielmat (LuK-, pro gradu- ja lisensiaatin tutkielmat sekä väitöskirjat). Lisäksi tätä modulia voi olla mahdollista käyttää myös julkaisujen kirjaamiseen
Tietokantaan määritellään opinnäytteen tekijät ja ohjaajat. Opinnäytteen tekijät (ja tarvittaessa myös ohjaajat) voivat tallentaa ajankäyttönsä järjestelmään, josta on hyötyä mm. työprojektien ajankäytön seurannassa.
Taulurakenteeseen voidaan tallentaa opinnäytettä koskevia tietoja (mm. kuvaus, WWW-sivu, aiheen ehdottaja ja hänen yhteystietonsa) usealla eri kielellä. Tekijöiden henkilökohtaiset arvosanat tallennetaan tietokannan kurssikirjanpito-osioon kuuluvaan Result-tauluun (luku 4.42). Opinnäytteellä on tekijäryhmä, johon liittyvä tapahtuma on opinnäytteen arvosanan antaminen.
Opinnäyte-modulin kannalta on tärkeää huomata, että Person-taulun (luku 3.2) WorksActionAccessGroupTypeID-kenttä määrittelee toimintakäyttöoikeusluokan opinnäytemoduliin.
Toimintakäyttöoikeusluokat ovat alustavasti
· opinnäytteen tekijä,
· ohjaaja,
· henkilökuntaan kuuluva henkilö,
· opinnäytevastaava,
· linjan johtaja ja
· ylläpitäjä.
Opiskelijalla (joka ei ole minkään opinnäytteen tekijä) on samat oikeudeet kuin kaikilla ulkopuolisilla käyttäjillä. Hän voi tehdä hakuja järjestelmästä (mm. vapaana olevista aiheista tai ehdottaa uusia opinnäyteaiheita). Henkilökuntaan kuuluvalla on pitämiensä kurssien kautta oikeuksia opinnäytteiden (mm. harjoitustöiden) muokkaamiseen.
Laajempia oikeuksia opinnäytteiden muokkaamiseen on opinnäytevastaavalla ja linjan johtajalla. Opinnäyteestä vastaava henkilö on ylläpitäjän ohella ainoa henkilö, joka voi lisätä järjestelmään opinnäyte-ehdotuksia. Linjan johtajalla (sekä myös ylläpitäjällä) on oikeus vahvistaa tekijät linjan graduille. Ylläpitäjällä on kaikki oikeudet kaikkiin järjestelmän toimintoihin.
Kuvassa 4 esitetään opinnäytemodulin taulurakenteet ER-kaavion muodossa. Tauluja käsitellään lähemmin seuraavissa aliluvuissa. Tauluja Course, EventGroup, Language, Organisation, Space ja Person ei käsitellä, sillä ne on esitelty luvuissa 4.2, 4.18, 3.12, 2.9, 4.22 ja 3.2. Joidenkin taulujen nimiä on jouduttu lyhentämään, joten vastaavassa alaluvussa alkuperäinen nimi on suluissa lyhennetyn nimen perässä.
Kuva 5. Opinnäyteosion ER kaavio
Action-taulu sisältää opinnäytteisiin liittyvät tekijöiden lisäykset ja poistot. Ne on tehnyt joku henkilö ja ne ovat kohdistuneet johonkin henkilöön. Taulun avulla pidetään kirjaa siitä, kuka on lisännyt ja kenet opinnäytteen tekijäksi. Vastaavasti tehdään merkintä siitä, että joku poistaa tekijän opinnäytteeltä. Taulu sisältää seuraavat kentät:
Deleted ilmoittaa, onko tietue merkitty poistetuksi.
ActionID on taulun avainkenttä eli se yksilöi opinnäytetiedot.
SubjectID määrittelee opinnäytteen.
MarkerPerson on toimija, joka on yleensä opinnäytteen ohjaaja.
ObjectPerson on toiminnan kohde, joka on normaalisti opinnäytteen tekijä.
ActionTypeID määrittelee kirjattavan tapahtuman tyypin.
OccuredOn ilmoittaa tapahtuman ajankohdan.
Description antaa tarkempaa tietoa toiminnasta (miksi näin on toimittu).
Tauluun liittyvät relaatiot ovat seuraavat:
· Relaatio ActionType-tauluun (katso 5.8) määrittelee toiminnalle tyypin (esim. lisätty tekijä).
· Relaatiota Subject-tauluun (katso 5.7) tarvitaan määrittämään opinnäyteaihe, johon toiminta liittyy.
· Relaatiolla Person-tauluun (katso 3.2) määritellään tekijä ja kohde (henkilö).
Esimerkki taulun sisällöstä esitetään taulukossa 62, jossa PID1 vastaa MarkerPersonia ja PID2 vastaa ObjectPersonia. Siinä ensimmäinen rivi kertoo, että 100:s henkilö on poistanut 1.1.2000 ensimmäisestä opinnäytteestä kolmannen henkilön. Toisella rivillä 101:s henkilö on lisännyt neljännen henkilön toiseen opinnäytteeseen ja antanut tarkemman kuvauksen tapahtuneesta.
Deleted |
ActionID |
SubjectID |
PID1 |
PID2 |
ActionTypeID |
OccuredOn |
False |
1 |
1 |
100 |
3 |
1 |
2000-1-1 |
False |
1 |
2 |
101 |
4 |
2 |
2000-1-1 |
Description |
Tekijää ei kiinnostanut aihe enää. |
Löytyi tekijä aiheelle. |
Taulukko 102: Esimerkki Action-taulun sisällöstä.
Detail-taulu yhdistää opinnäytteeseen tietoja, kuten kuvauksen. Taulu sisältää seuraavat kentät:
Deleted ilmoittaa, onko tietue merkitty poistetuksi.
DetailID on taulun avainkenttä eli se yksilöi opinnäytetiedot.
SubjectID määrittelee opinnäytteen.
DetailTypeID määrittelee DetailType-taulusta (luku 5.9) löytyvän opinnäytetietotyypin.
Tauluun liittyvät relaatiot ovat seuraavat:
· Relaatiota Language-tauluun (luku 3.13) tarvitaan tietojen monikielistämistä varten (katso TranslatedDetail-taulu, luku 5.5).
· Relaatiota Subject-tauluun (katso 5.7) tarvitaan, jotta voidaan määritellä mihin opinnäyteaiheeseen tieto liittyy.
· Relaatiolla DetailType-tauluun (5.10) määritellään tietotyyppi.
Esimerkki taulun sisällöstä esitetään taulukossa 103, joka määrittelee ensimmäiseen ja toiseen opinnäyteaiheisiin liittyvän tietotyypin (oletettavasti kuvaus).
Deleted |
DetailID |
SubjectID |
DetailTypeID |
False |
1 |
1 |
1 |
False |
2 |
2 |
1 |
Taulukko 103. Esimerkki Detail-taulun sisällöstä.
Tämä taulu sisältää opinnäyteaiheiden monikielistetyt tiedot. Taulu sisältää seuraavat kentät:
Deleted ilmoittaa, onko tietue merkitty poistetuksi.
DetailID määrittelee opinnäytteen tiedon.
LanguageID määrittelee käännöskielen.
Name sisältää käännetyn opinnäytteen tiedon.
Tauluun liittyvät relaatiot ovat seuraavat:
· Relaatiota Language-tauluun (luku 3.12) tarvitaan tietojen monikielistämistä varten.
· Relaatiota Detail-tauluun (katso 5.4) tarvitaan, jotta voidaan määritellä tieto.
Esimerkki taulun sisällöstä esitetään taulukossa 104, joka määrittelee opinnäytetiedolle kuvauksen kahdella eri kielellä.
Deleted |
DetailID |
LanguageID |
Name |
False |
1 |
1 |
A simple assembler work. |
False |
1 |
2 |
Yksinkertainen assembler harjoitustyö. |
Taulukko 104. Esimerkki TranslatedDetail-taulun sisällöstä.
Tämä taulu sisältää opinnäytteiden vaihemerkinnät. Jokainen kirjaus tehdään vain yhdellä kielellä, joka on määritelty opinnäytteen tekijäryhmän yhteydessä. Taulu sisältää seuraavat kentät:
Deleted ilmoittaa, onko tietue merkitty poistetuksi.
PhaseID on taulun avainkenttä ja se yksilöi vaiheet.
PhaseTypeID määrittelee vaihetyypin.
Entry sisältää vaiheessa kirjatun tekstin.
PrimaryTime sisältää ensisijaisen ajan, joka yleensä tarkoittaa tapahtuman aikaa.
SecondaryTime sisältää toissijaisen ajan (lopetusaika).
Registered kirjausaika.
Tauluun liittyvät relaatiot ovat seuraavat:
· Relaatio PhaseType-tauluun (luku 5.12) tarvitaan, jotta voidaan määritellä vaiheelle tyyppi (esim. aloitus, ohjaus tai hyväksyminen).
· Relaatiota Person-tauluun (luku 3.2) tarvitaan, jotta voidaan merkitä vaiheen merkitsijä (katso PhaseMarker, luku 5.28).
· Relaatiot Subject- ja EventGroup-tauluihin tarvitaan, jotta voidaan määritellä opinnäyteaihe ja aiheeseen liittyvät tekijäryhmät (katso luvun 5.27 taulu SubjectPhaseEventGroup).
Esimerkki taulun sisällöstä esitetään taulukossa 83, jossa PIDiä vastaa PhaseID. Taulun datan mukaan on tapahtunut 3 tapahtumaa, jotka ovat ryhmän muodostaminen, ohjauskerta ja työn hyväksyminen.
Huomioi seuraavat asiat:
· Registered-kentän arvo ei ole välttämättä sama kuin PrimaryTime tai SecondaryTime, sillä esim. hyväksyminen voi tapahtua ennen kuin sitä kirjataan järjestelmään.
· SecondaryTime-kentällä ei ole käyttöä, ellei kyseessä ole ajanseuranta (esim. työprojektissa). Tämä kenttä kannattanee yleensä täyttää PrimaryTime-kentän arvolla, jolloin vältytään NULL-arvoilta.
Deleted |
PID |
PhaseTypeID |
Entry |
PrimaryTime
|
False |
1 |
1 |
Ryhmä muodostettu. |
2000-1-1 |
False |
2 |
2 |
Sovittu toteutettavat osat työstä. |
2000-2-10 |
False |
3 |
3 |
Työ hyväksytty. |
2000-5-15 |
SecondaryTime |
Registered |
2000-1-1 |
2000-1-2 |
2000-2-10 |
2000-2-10 |
2000-5-15 |
2000-6-1 |
Taulukko 105: Esimerkki Phase-taulukon sisällöstä.
Taulu määrittelee järjestelmän opinnäytteet ja niiden opinnäytetyypin, kuten harjoitustyö ja työprojekti. Taulu sisältää seuraavat kentät:
Deleted ilmoittaa, onko tietue merkitty poistetuksi.
SubjectID on taulun avainkenttä yksilöiden opinnäytteet. Harjoitustyötä ei yksilöidä tässä jokaista tekijäryhmää varten. Tekijäryhmä, harjoitustyö ja vaihe yhdistetään SubjectPhaseEventGroup- taulun avulla.
SubjectTypeID määrittelee opinnäytteen aihetyypin, joita ovat mm. harjoitustyö ja erikoistyö.
LanguageID kertoo opinnäytteen kielen.
SpaceID määrittelee varatun työtilan.
Tauluun liittyvät relaatiot ovat seuraavat:
· Relaatiota Detail-tauluun (luku 5.4) tarvitaan, jotta voidaan määritellä opinnäyteaiheeseen liittyvät opinnäytetiedot.
· Relaatiolla SubjectOrgRelationshipType- (luku 5.14) ja Organisation-tauluun (luku 2.9) määritellään opinnäyteiden ja organisaatioiden väliset suhteet (katso SubjectOrgRelationship, luku 5.26).
· Relaatiolla Action-tauluun (luku 5.3) määritellään, mikä toiminta liittyy mihinkin opinnäytteeseen.
· Relaatiolla SubjectPhaseEventGroup-tauluun (luku 5.27) määritellään, mihin tekijäryhmään ja vaiheeseen opinnäyte liittyy.
·
Relaatiolla Person-tauluun (luku 3.2) määrittellään opinnäytteen käyttöoikeudet (katso WorksSubjectAccessRight, luku 5.29).
· Relaatiolla Language- (luku 3.13), EventGroup- (luku 4.23) ja Space-tauluun (luku 4.27) määritellään opinnäyteaihe, jota tekijäryhmä tekee tietyllä kielellä jossain työtilassa (katso SubjectEventGroupLink, luku 5.24).
· Relaatiota Course-tauluun (luku 4.2) tarvitaan, jotta voidaan määritellä kurssit, joille opinnäyteaihe on mahdollinen (katso AllowedCourseSubjectType, luku 5.20).
· Relaatiota SubjectType-tauluun (luku 5.16) tarvitaan, jotta voidaan määritellä opinnäyteaiheen tyyppi (esim. gradu, harjoitustyö).
Esimerkki taulun sisällöstä on esitetty taulukossa 106, jonka mukaan ensimmäinen opinnäyte on viidettä tyyppiä (pro gradu -tutkielma) ja toinen on kolmatta tyyppiä (työprojekti).
Deleted |
SubjectID |
SubjectTypeID |
LanguageID |
SpaceID |
False |
1 |
5 |
1 |
1 |
False |
2 |
3 |
1 |
2 |
Taulukko 106: Esimerkki Subject-taulun sisällöstä.
Taulu sisältää kaikkien toimintatyyppien tunnukset. Taulu sisältää seuraavat kentät:
Deleted ilmoittaa, onko tietue merkitty poistetuksi.
ActionTypeID on taulun avainkenttä yksilöiden toimintatyypit.
Tauluun liittyvät relaatiot ovat seuraavat:
· Relaatiolla Action-tauluun (katso 5.3) määritellään toiminnan tyyppi.
· Relaatiolla Language-taulu (katso 3.12) määritellään käännöskieli toimintatyypille (katso TranslatedActionType, luku 5.9).
Esimerkki taulun sisällöstä esitetään taulukossa 107. Sen mukaan järjestelmässä on 2 tapahtumaa, jotka luultavasti ovat tekijä poistettu (1) ja tekijä lisätty (2).
Deleted |
ActionTypeID |
False |
1 |
False |
2 |
Taulukko 107: Esimerkki ActionType-taulun sisällöstä.
Taulu sisältää kaikki monikielistetyt toimintatyypit. Taulu sisältää seuraavat kentät:
Deleted ilmoittaa, onko tietue merkitty poistetuksi.
ActionTypeID määrittelee toimintatyypin.
LanguageID määrittelee käännöskielen.
Name ilmoittaa opinnäyteaihetyypin käännöksen.
Tauluun liittyvät relaatiot ovat seuraavat:
· Relaatiota Language-tauluun (luku 3.13) tarvitaan toimintojen monikielistämistä varten.
· Relaatiota Action-tauluun (katso 5.3) tarvitaan, jotta voidaan määritellä toiminta.
Esimerkki taulun sisällöstä esitetään taulukossa 108, joka määrittelee työharjoittelun englannin ja suomen kielellä.
Deleted |
ActionTypeID |
LanguageID |
Name |
False |
1 |
1 |
Person was removed |
False |
1 |
2 |
Henkilö poistettu |
False |
2 |
1 |
Person was added |
False |
2 |
2 |
Henkilö lisättiin |
Taulukko 108: Esimerkki TranslatedActionType-taulun sisällöstä.
Tämä taulu sisältää kaikki opinnäytteen tietotyyppinumerot. Taulu sisältää seuraavat kentät:
Deleted ilmoittaa, onko tietue merkitty poistetuksi.
DetailTypeID on taulun avainkenttä eli se yksilöi opinnäytetyypit.
Tauluun liittyvät relaatiot
ovat seuraavat:
· Detail-taulun (luku 5.4) relaatiolla määritellään, mitä tyyppiä opinnäytteen tieto on.
· Relaatiolla Language- (luku 3.13) ja SubjectType-tauluun (luku 5.16) määritellään monikielistetyt tietotyypit opinnäytetyyppikohtaisesti (katso TranslatedSubjectDetailType, luku 5.11).
Esimerkki taulun sisällöstä esitetään taulukossa 109. Sen mukaan järjestelmässä on 4 opinnäytetietotyyppiä, jotka voisivat olla esim. kuvaus (1), WWW-osoite (2), ehdottajan nimi (3) ja ehdottajan yhteystiedot(4). Sanalliset tyypit määritellään TranslatedSubjectDetailType-taulussa.
Deleted |
DetailTypeID |
False |
1 |
False |
2 |
False |
3 |
False |
4 |
Taulukko 109: Esimerkki DetailType-taulukon sisällöstä.
Tämä taulu määrittelee opinnäytteiden tietotyypit (kuvaus, WWW-osoite, ehdottajan nimi ja ehdottajan yhteystiedot) monikielistettyinä. Huom: WWW-osoitteen monikielistämisellä tarkoitetaan sitä, että WWW-osoite on kyseisen kieliselle sivulle. Taulu sisältää seuraavat kentät:
Deleted ilmoittaa, onko tietue merkitty poistetuksi.
SubjectTypeID määrittelee opinnäytteen tyypin (esimerkiksi harjoitustyö tai erikoistyö).
DetailTypeID määrittelee opinnäytteen tietotyypin.
LanguageID määrittelee käännöskielen.
Name ilmoittaa opinnäytteen tietotyypin käännöksen.
Tauluun liittyvät relaatiot ovat seuraavat:
· Relaatiota SubjectType-tauluun (luku 5.16) tarvitaan, jotta voidaan määritellä opinnäytetyyppi.
· Relaatiota DetailType-tauluun (luku 5.10) tarvitaan, jotta voidaan määritellä tietotyyppi.
· Relaatiota Language-tauluun (luku 3.13) tarvitaan opinnäytteen tietotyyppien monikielistämistä varten.
Esimerkki taulun sisällöstä
esitetään taulukossa 110, jonka mukaan opinnäytetyypeille harjoitustyö (1) ja
erikoistyö (2) on olemassa kuvaukset (DetailTypeID) kahdella eri
kielellä.
Deleted |
SubjectTypeID |
DetailTypeID |
LanguageID |
Name |
False |
1 |
1 |
1 |
Description |
False |
1 |
1 |
2 |
Kuvaus |
False |
2 |
1 |
1 |
Description |
False |
2 |
1 |
2 |
Kuvaus |
Taulukko 110: Esimerkki TranslatedSubjectDetailType-taulun sisällöstä.
PhaseType-taulu sisältää kaikki opinnäytteen vaihetyyppinumerot. Taulu sisältää seuraavat kentät:
Deleted ilmoittaa, onko tietue merkitty poistetuksi.
PhaseTypeID on taulun avainkenttä eli se yksilöi vaihetyypit.
Tauluun liittyvät relaatiot ovat seuraavat:
· Phase-taulun (luku 5.6) relaatiolla määritellään vaiheelle vaihetyyppi.
· Relaatiolla Language-tauluun (luku 3.13) määritellään vaihetyyppi monikielistettynä (katso TranslatedPhaseType, luku 5.13).
· Relaatioilla Course- (luku 4.2) ja SubjectType-tauluun (luku 5.16) määritellään ne vaihetyypit, jotka ovat sallittuja opintojakson tietylle opinnäytteentyypille (katso CoursePhaseForSubject, luku 5.24).
Esimerkki taulun sisällöstä esitetään taulukossa 111, joka määrittelee järjestelmässä olevan kolme vaihetta.
Deleted |
PhaseTypeID |
False |
1 |
False |
2 |
False |
3 |
Taulukko 111: Esimerkki PhaseType-taulukon sisällöstä.
Tämä taulu määrittelee monikielistetyt vaihetyypit. Taulu sisältää seuraavat kentät:
Deleted ilmoittaa, onko tietue merkitty poistetuksi.
PhaseTypeID määrittelee vaihetyypin.
LanguageID on käännöskielien tunniste.
Name ilmoittaa vaihetyypin käännöksen.
Tauluun liittyvät relaatiot ovat seuraavat:
· Relaatiota PhaseType-tauluun (luku 5.12) tarvitaan, jotta voidaan määritellä vaihetyyppi.
· Relaatiota Language-tauluun (luku 3.13) tarvitaan vaihetyyppien monikielistämistä varten.
Esimerkki taulun sisällöstä esitetään taulukossa 112, joka määrittelee opinnäytevaiheet aloitus, ohjaus ja hyväksyntä englannin ja suomen kielillä.
Deleted |
PhaseTypeID |
LanguageID |
Name |
False |
1 |
1 |
Beginning |
False |
1 |
2 |
Aloitus |
False |
2 |
1 |
Control |
False |
2 |
2 |
Ohjaus |
False |
3 |
1 |
Approval |
False |
3 |
2 |
Hyväksyntä |
Taulukko 112: Esimerkki TranslatedPhaseType-taulun sisällöstä.
Tämä taulu sisältää kaikki opinnäytteen ja organisaatioiden väliset suhdetyyppinumerot. Taululla voidaan määritellä mm. opinnäytteen tilaaja- ja maksajaorganisaatio. Taulu sisältää seuraavat kentät:
Deleted ilmoittaa, onko tietue merkitty poistetuksi.
SubjectOrgRelationShipTypeID on taulun avainkenttä eli se yksilöi opinnäytteiden ja organisaatioiden väliset suhdetyypit.
Tauluun liittyvät relaatiot ovat seuraavat:
· Relaatiolla Language-tauluun (luku 3.13) määritellään käännöskieli, jonka avulla opinnäytteiden ja organisaatioiden väliset suhteet monikielistetään (katso luvun 5.15 taulu TrSubjectOrgRelationshipType)
· Relaatiolla Organisation- (luku 2.9) ja Subject-tauluun (luku 5.7) määritellään organisaation ja opinnäytteen välinen suhde (katso luvun 5.26 taulu SubjectOrgRelationShip).
Esimerkki taulun sisällöstä
esitetään taulukossa 113, joka määrittelee että järjestelmässä on kaksi
suhdetyyppiä.
Deleted |
SubjectOrgRelationshipTypeID
|
False |
1 |
False |
2 |
Taulukko 113: Esimerkki SubjectOrgRelationshipType-taulun sisällöstä.
Tämä taulu sisältää monikielistetyt opinnäytteen ja organisaation väliset suhdetyypit, joita ovat mm. maksaja ja tilaaja. Taulu sisältää seuraavat kentät:
Deleted ilmoittaa, onko tietue merkitty poistetuksi.
SubjectOrgRelationshipTypeID määrittelee opinnäytteen ja organisaation välisen suhdetyypin.
LanguageID on käännöskieli.
Name ilmoittaa suhteen käännöksen.
Tauluun liittyvät relaatiot ovat seuraavat:
· Relaatiota SubjectOrgRelationshipType-tauluun (luku 5.14) tarvitaan, jotta voidaan määritellä opinnäytteen ja organisaation välinen suhdetyyppi.
· Relaatiota Language-tauluun (luku 3.13) tarvitaan opinnäytteen ja organisaation välisen suhdetyypin monikielistämistä varten.
Esimerkki taulun sisällöstä esitetään taulukossa 114, joka määrittelee suomeksi ja englanniksi suhdetyypeiksi tilaaja ja maksaja.
Deleted |
SubjectOrgRelationshipTypeID |
LanguageID |
Name |
False |
1 |
1 |
Orderer |
False |
1 |
2 |
Tilaaja |
False |
2 |
1 |
Payer |
False |
2 |
2 |
Maksaja |
Taulukko 114: Esimerkki TrSubjectOrgRelationshipType-taulun sisällöstä.
SubjectType-taulu sisältää kaikki opinnäytetyyppien tunnistenumerot. Taulu sisältää seuraavat kentät:
Deleted ilmoittaa, onko tietue merkitty poistetuksi.
SubjectTypeID on taulun avainkenttä eli se yksilöi opinnäytetyypit. Opinnäytteellä on oltava opinnäytetyypin tunnistenumero.
Tauluun liittyvät relaatiot
ovat seuraavat:
· Relaatio Subject-tauluun (luku 5.7) määrittelee opinnäyteaiheelle opinnäytetyypin.
· Relaatiolla Course-tauluun (luku 4.2) määritellään opinnäytetyypit, jotka ovat sallittuja tietylle kurssille (katso AllowedCourseSubjectType, luku 5.20).
· Relaatiolla Language-tauluun (luku 3.13) määritellään opinnäytetyypit monikielistettynä (katso TranslatedSubjectType, luku 5.17).
· Relaatiolla Course- (luku 4.2) ja PhaseType-tauluun (luku 5.12) määritellään opintojaksolle, mitkä vaihetyypit ovat sallittuja opinnäytetyypeille (katso CoursePhaseForSubject, luku 5.24).
· Relaatiolla DetailType- (luku 5.10) ja Language-tauluun (luku 3.13) määritellään opinnäytetyypistä tallennettavat tiedot usealla kielellä (katso TranslatedSubjectDetailType, luku 5.11).
Esimerkki taulun sisällöstä
esitetään taulukossa 115, joka määrittelee 8 opinnäyteaihetyyppiä. Ne olisivat
todennäköisesti harjoitustyö, erikoistyö, työprojekti ja työharjoittelu, sekä
pro gradu -, LuK- ja lisensiaatin tutkielma sekä väitöskirja.
Deleted |
SubjectTypeID |
False |
1 |
False |
2 |
False |
3 |
False |
4 |
False |
5 |
False |
6 |
False |
7 |
False |
8 |
Taulukko 115: Esimerkki SubjectType-taulun sisällöstä.
Tämä taulu sisältää opinnäytteiden tyypit monikielistettynä. Taulu sisältää seuraavat kentät:
Deleted ilmoittaa, onko tietue merkitty poistetuksi.
SubjectTypeID on opinnäytteen tyyppi.
LanguageID on käännöskieli.
Name ilmoittaa opinnäytteen tyypin käännöksen.
Tauluun liittyvät relaatiot ovat seuraavat:
· Relaatiota SubjectType-tauluun (luku 5.16) tarvitaan, jotta voidaan määritellä opinnäyttetyyppi.
· Relaatiota Language-tauluun (luku 3.13) tarvitaan opinnäytetyypin monikielistämistä varten.
Esimerkki taulun sisällöstä
esitetään taulukossa 116, joka määrittelee työharjoittelun englannin ja suomen
kielellä.
Deleted |
SubjectTypeID |
LanguageID |
Name |
False |
4 |
1 |
Job training |
False |
4 |
2 |
Työharjoittelu |
Taulukko 116: Esimerkki TranslatedSubjectType-taulun sisällöstä.
Tämä taulu määrittelee opinnäytteen käyttöoikeusluokkanumerot. Sanallisesti käyttöoikeusluokat määritellään TrWorkSubjectAccessRightType-taulussa (katso 5.19) Taulu sisältää seuraavat kentät:
Deleted ilmoittaa, onko tietue merkitty poistetuksi.
WorksSubjectAccessRightTypeID on taulun avainkenttä eli se yksilöi oikeusluokat.
Tauluun liittyvät relaatiot ovat seuraavat:
· Relaatiolla Language-tauluun (luku 3.13) määritellään monikielistetty opinnäytteen käyttöoikeus (katso TrWorksSubjectAccessRightType, luku 5.19).
· Relaatiolla Person- (luku 3.2) ja Subject-tauluun (luku 5.7) määritellään opinnäytteen käyttöoikeudet (katso WorksSubjectAccessRight, luku 5.29).
Esimerkki taulun sisällöstä
esitetään taulukossa 117, joka määrittelee järjestelmässä olevan yhden
oikeusluokan.
Deleted |
WorksSubjectAccessRightTypeID
|
False |
1 |
Taulukko 117: Esimerkki WorksSubjectAccessRightType-taulun sisällöstä.
Tämä taulu määrittelee opinnäytteen monikielistetyt käyttöoikeusluokat. Taulu sisältää seuraavat kentät:
Deleted ilmoittaa, onko tietue merkitty poistetuksi.
WorksSubjectAccessRightTypeID on opinnäytteen käyttöoikeusluokan tunniste.
LanguageID on käännöskieli.
Name ilmoittaa käyttöoikeusluokan käännöksen.
Tauluun liittyvät relaatiot ovat seuraavat:
· Relaatiota WorksSubjectAccessRightType-tauluun (luku 5.18) tarvitaan, jotta voidaan määritellä opinnäytteen käyttöoikeustyyppi.
· Relaatiota Language-tauluun (luku 3.13) tarvitaan opinnäytteen käyttöoikeustyyppien monikielistämistä varten.
Esimerkki taulun sisällöstä esitetään taulukossa 118, joka määrittelee käyttöoikeusluokaksi ohjaajan kahdella eri kielellä.
Deleted |
WorksSubjectAccessRightTypeID |
LanguageID |
Name |
False |
1 |
1 |
Supervisor |
False |
1 |
2 |
Ohjaaja |
Taulukko 118: Esimerkki TrWorksSubjectAccessRightType-taulun sisällöstä.
Tämä taulu määrittelee kurssille mahdolliset opinnäytetyypit. Pro gradu -opintojaksolle on vain pro gradu -opinnäytetyyppi mahdollinen. Taulu sisältää seuraavat kentät:
Deleted ilmoittaa, onko tietue merkitty poistetuksi.
CourseID määrittelee opintojakson tunnisteen.
SubjectTypeID määrittelee opinnäytetyypin tunnisteen.
Tauluun liittyvät relaatiot ovat seuraavat:
· Relaatiota Course-tauluun (luku 4.2) tarvitaan, jotta voidaan määritellä opintojakso.
· Relaatiota SubjectType-tauluun (luku 5.16) tarvitaan opintojaksolle sallittujen opinnäytetyyppien määrittelemistä varten.
Esimerkki taulun sisällöstä
esitetään taulukossa 119, jonka mukaan ensimmäisellä kurssilla on mahdollista
ensimmäinen opinnäytetyyppi, toisella kurssilla toinen opinnäytetyyppi ja
kolmannella kurssille kolmas opinnäytetyyppi.
Deleted |
CourseID |
SubjectTypeID |
False |
1 |
1 |
False |
2 |
2 |
False |
3 |
3 |
Taulukko 119: Esimerkki AllowedCourseSubjectType-taulun sisällöstä.
Tämä taulu määrittelee toimintaluokkien tunnisteet. Taulu sisältää seuraavat kentät:
Deleted ilmoittaa, onko tietue merkitty poistetuksi.
WorksActionAccessGroupTypeID määrittelee toimintaluokan tunnisteen.
Tauluun liittyvät relaatiot ovat seuraavat:
· Relaatiolla Language-tauluun (luku 3.13) määritellään monikielistetty toimintaoikeusluokkatyyppi (katso TrWorksActionAccessGroupType, luku 5.22).
· Relaatiolla Person-tauluun (luku 3.2) määritellään henkilön toimintaoikeusluokka.
Esimerkki taulun sisällöstä
esitetään taulukossa 120, joka määrittelee toimintaoikeusluokan tunnisteen 1.
Deleted |
WorksActionAccessGroupTypeID
|
False |
1 |
Taulukko 120: Esimerkki WorksActionAccessGroupType-taulun sisällöstä.
Tämä taulu määrittelee monikielistetyt toimintaoikeusluokat. Taulu sisältää seuraavat kentät:
Deleted ilmoittaa, onko tietue merkitty poistetuksi.
WorksActionAccessGroupTypeID määrittelee toimintaluokka tunnisteen.
LanguageID on käännöskieli.
Name ilmoittaa toimintaoikeusluokan käännöksen.
Tauluun liittyvät relaatiot ovat seuraavat:
· Relaatiota WorksActionAccessGroupType-tauluun (luku 5.21) tarvitaan, jotta voidaan määritellä opinnäytteen käyttöoikeustyyppi.
· Relaatiota Language-tauluun (luku 3.13) tarvitaan opinnäytteen käyttöoikeustyyppi en monikielistämistä varten.
Esimerkki taulun sisällöstä
esitetään taulukossa 121, joka määrittelee toimintaoikeusluokan 1
käännökset englanniksi- ja suomeksi.
Deleted |
WorksActionAccessGroupTypeID |
LanguageID |
Name |
False |
1 |
1 |
Chief |
False |
1 |
2 |
Johtaja |
Taulukko 121: Esimerkki TrWorksActionAccessGroupType-taulun sisällöstä.
AllowedSubjectCourse-taulu määrittelee, mitkä opinnäytteet ovat mahdollisia milläkin kurssilla. Opintojakso voi sisältää vain niitä opinnäytteitä, joiden tyypit on määritelty AllowedCourseSubjectType-taulussa (katso 5.20) opintojaksolle. Taulu sisältää seuraavat kentät:
Deleted ilmoittaa, onko tietue merkitty poistetuksi.
SubjectID ilmoittaa opinnäytteen tunnisteen.
CourseID määrittelee opintojakson tunnisteen.
Tauluun liittyvät relaatiot ovat seuraavat:
· Relaatiota Subject-tauluun (luku 5.7) tarvitaan, jotta voidaan määritellä opinnäytteen tunniste.
· Relaatiota Course-tauluun (luku 4.2) tarvitaan opintojaksolle sallittujen kurssien määrittämiseen.
Esimerkki taulun sisällöstä
esitetään taulukossa 122, joka määrittelee ensimmäisen ja toisen opinnäytteen
olevan sallittuja ensimmäiselle ja toiselle kurssille. Vastaavasti kolmas
opinnäyte on sallittu vain toiselle kurssille.
Deleted |
SubjectID |
CourseID |
False |
1 |
1 |
False |
2 |
1 |
False |
1 |
2 |
False |
2 |
2 |
False |
3 |
2 |
Taulukko 122: Esimerkki AllowedSubjectCourse-taulun sisällöstä.
CoursePhaseForSubject-taulu määrittelee kurssikohtaisesti, mitkä vaiheet (esim. aloitus, ohjaus, hyväksyntä) ovat mahdollisia millekin opinnäytetyypille (esim. gradu, harjoitustyö). Taulu sisältää seuraavat kentät:
Deleted ilmoittaa, onko tietue merkitty poistetuksi.
CourseID määrittelee opintojakson tunnisteen.
PhaseTypeID on vaiheen tyypin tunniste.
SubjectTypeID määrittelee opinnäytetyypin tunnisteen.
Tauluun liittyvät relaatiot ovat seuraavat:
· Relaatiota Course-tauluun (luku 4.2) tarvitaan, jotta voidaan määritellä opintojakso.
· Relaatiota PhaseType-tauluun (luku 5.12) tarvitaan vaihetyypin määrittämiseen.
· Relaatiota SubjectType-tauluun (luku 5.16) tarvitaan, jotta voidaan määritellä opinnäytteen tyyppi.
Esimerkki taulun sisällöstä
esitetään taulukossa 123, jonka mukaan ensimmäisellä kurssilla harjoitustyölle
on mahdollista vaiheet yksi, kaksi ja kolme (olettaen että SubjectTypeID:n arvo 1 vastaa harjoitustyötä).
Deleted |
CourseID |
PhaseTypeID |
SubjectTypeID |
False |
1 |
1 |
1 |
False |
1 |
2 |
1 |
False |
1 |
3 |
1 |
Taulukko 123: Esimerkki CoursePhaseForSubject-taulun sisällöstä.
SubjectEventGroupLink-taulu määrittelee opinnäytteelle tekijäryhmän, opinnäytteen teossa käytettävän työtilan ja kielen sekä sisältää kenttänä opinnäytteestä mahdollisesti saatavan kokonaisarvosanan. Taulu sisältää seuraavat kentät:
Deleted ilmoittaa, onko tietue merkitty poistetuksi.
SubjectID määrittelee opinnäytteen tunnisteen.
EventGroupID on tekijäryhmän tunniste.
SpaceID määrittelee tilan tunnisteen.
LanguageID on käännöskielen tunniste.
GroupGrade sisältää yhteisarvosanan (vapaamuotoinen tekstikenttä).
Tauluun liittyvät relaatiot ovat seuraavat:
· Relaatiota Subject-tauluun (luku 5.7) tarvitaan, jotta voidaan määritellä opintojakso.
· Relaatiota EventGroup-tauluun (luku 4.23) tarvitaan tekijäryhmän määrittämiseen.
· Relaatiota Space-tauluun (luku 4.27) tarvitaan, jotta voidaan määritellä opinnäytteen työtila.
· Relaatiota Language-tauluun (luku 3.13) tarvitaan, jotta voidaan määritellä kieli, jolla opinnäytettä tehdään.
Esimerkki taulun sisällöstä
esitetään taulukossa 124, jonka mukaan ensimmäistä opinnäytettä on tehnyt toinen ryhmä kolmannessa
työtilassa neljännellä kielellä. Yhteisarvosanaksi ryhmä on saanut Hyväksytty.
Deleted |
SubjectID |
EventGroup |
SpaceID |
LanguageID |
GroupGrade |
False |
1 |
2 |
3 |
4 |
Hyväksytty |
Taulukko 124: Esimerkki SubjectEventGroupLink-taulun sisällöstä.
Tämä taulu määrittelee, miten organisaatio ja opinnäytteen aihe liittyvät toisiinsa (esim. tilaava ja maksava organisaatio). Taulu sisältää seuraavat kentät:
Deleted ilmoittaa, onko tietue merkitty poistetuksi.
SubjectID määrittelee opinnäyteaiheen tunnisteen.
OrganisationID määrittelee organisaation tunnisteen.
SubjectOrgRelationshipTypeID määrittelee opinnäytteen ja organisaation välisen suhteen.
Tauluun liittyvät relaatiot ovat seuraavat:
· Relaatiota Subject-tauluun (luku 5.7) tarvitaan, jotta voidaan määritellä opintojakso.
· Relaatiota Organisation-tauluun (luku 2.9) tarvitaan organisaation määrittämiseen.
· Relaatiota SubjectOrgRelationshipType-tauluun (luku 5.14) tarvitaan, jotta voidaan määritellä opinnäytteen ja organisaation välinen suhde.
Esimerkki taulun sisällöstä
esitetään taulukossa 125, joka määrittelee ensimmäisen opinnäytteen tilaajaksi
organisaation 3 ja maksajaksi organisaation 4. Ensimmäinen SubjectOrgRelationshipTypen arvo
1 saattaa vastata tilaajaa ja 2 maksajaa.
Deleted |
SubjectID |
OrganisationID |
SubjectOrgRelationshipTypeID |
False |
1 |
3 |
1 |
False |
1 |
4 |
2 |
Taulukko 125: Esimerkki SubjectOrgRelationship-taulun sisällöstä.
Tämä taulu määrittelee, mikä opinnäyteaiheen (SubjectID) vaihenumero (PhaseID) kuuluu millekin tekijäryhmälle (EventGroupID). Taulu sisältää seuraavat kentät:
Deleted ilmoittaa, onko tietue merkitty poistetuksi.
SubjectID määrittelee opinnäyte aiheen tunnisteen.
EventGroupID on tekijäryhmän tunniste.
PhaseID määrittelee vaiheen tunnisteen.
Tauluun liittyvät relaatiot ovat seuraavat:
· Relaatiota Subject-tauluun (luku 5.7) tarvitaan, jotta voidaan määritellä opintojakso.
· Relaatiota EventGroup-tauluun (luku 4.23) tarvitaan tekijäryhmän määrittämiseen.
· Relaatiota Phase-tauluun (luku 5.6) tarvitaan, jotta voidaan määritellä vaihe.
Esimerkki taulun sisällöstä
esitetään taulukossa 126, joka määrittelee ensimmäinen tekijäryhmän
suorittaneen ensimmäisen opinnäytteen vaiheet 1, 2 ja 3. Toinen tekijäryhmä on suorittanut vasta vaiheen 1.
Deleted |
SubjectID |
EventGroupID |
PhaseID |
False |
1 |
1 |
1 |
False |
1 |
1 |
2 |
False |
1 |
1 |
3 |
False |
2 |
2 |
1 |
Taulukko 126: Esimerkki SubjectPhaseEventGroup-taulun sisällöstä.
PhaseMarker-taulu sisältää merkinnät siitä, kuka on merkinnyt minkäkin vaiheen. Taulu sisältää seuraavat kentät:
Deleted ilmoittaa, onko tietue merkitty poistetuksi.
PhaseID määrittelee vaiheen.
MarkerPersonID on kirjaajan tunniste.
Tauluun liittyvät relaatiot ovat seuraavat:
· Relaatiota Phase-tauluun (luku 5.6) tarvitaan, jotta voidaan määritellä vaihe.
· Relaatiota Person-tauluun (luku 3.2) tarvitaan merkitsijän määrittämiseen.
Esimerkki taulun sisällöstä esitetään taulukossa 127, jonka mukaan vaiheet 1, 2 ja 3 on kirjannut järjestelmään henkilö 1.
Deleted |
PhaseID |
MarkerPersonID |
False |
1 |
1 |
False |
2 |
1 |
False |
3 |
1 |
Taulukko 127: Esimerkki PhaseMarker-taulun sisällöstä.
Taulu sisältää opinnäytteeseen liittyvien henkilöiden käyttöoikeusluokat, kuten opinnäytteen ohjaajat. Taulu sisältää seuraavat kentät:
Deleted ilmoittaa, onko tietue merkitty poistetuksi.
PersonID määrittelee henkilön.
SubjectID määrittelee opinnäytteen.
WorksSubjectAccessRightTypeID määrittelee opinnäytteen käyttöoikeusluokan.
Tauluun liittyvät relaatiot ovat seuraavat:
· Relaatiota Person-tauluun (luku 3.2) tarvitaan merkitsijän määrittämiseen.
· Relaatiota Subject-tauluun (luku 5.7) tarvitaan, jotta voidaan määritellä opinnäyte.
· Relaatiota WorksSubjectAccessRightType-tauluun (luku 5.18) tarvitaan, jotta voidaan määritellä opinnäytteen käyttöoikeustyyppi.
Esimerkki taulun sisällöstä esitetään taulukossa 128, jonka mukaan henkilöllä 1 on käyttöoikeusluokka 1 opinnäytteeseen 1. Henkilöllä 2 on käyttöoikeusluokka 1 opinnäytteisiin 1 ja 2.
Deleted |
PersonID |
SubjectID |
WorksSubjectAccessRightTypeID |
False |
1 |
1 |
1 |
False |
2 |
1 |
1 |
False |
2 |
2 |
1 |
Taulukko 128. Esimerkki WorksSubjectAccessRight-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.
Kuva 6. Fees and
Invoices-moduulin ER-kaavio
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:
·
Relaatio CourseInstance-tauluun
määrittelee kurssin, jonka maksuista on kyse.
·
Relaatio Period-tauluun
määrittelee periodin.
Esimerkki taulun sisällöstä on taulukossa 129.
Deleted |
CourseInstanceID |
PeriodID |
NoPeriodFeeEuro |
NoPeriodFeeMark |
False |
1 |
1 |
30 |
180 |
False |
1 |
2 |
10 |
60 |
PeriodFeeEuro |
PeriodFeeMark
|
0 |
0 |
0 |
0 |
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:
·
Relaatio CourseParticipant-tauluun
määrittelee kurssin.
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:
·
Relaatio PeriodFee-tauluun
määrittelee kyseessä olevan kausikortin.
·
Relaatio Period-tauluun
määrittelee voimassaoloajanjakson.
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:
·
Relaatio Language-tauluun
määrittelee käytettävät kielet.
·
Relaatio InvoiceStatus-tauluun
kuvaa laskuille määritellyt tilat.
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:
·
Relaatio Organisation-tauluun
määrittelee maksajaorganisaation tai maksajan kotiorganisaation.
·
Relaatio InvoiceStatus-tauluun
määrittelee laskun tilan.
·
Relaatio Person-tauluun
määrittelee maksajan.
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:
·
Relaatio Invoice-tauluun
määrittelee laskutettavan kokonaisuuden.
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:
·
Relaatio Bill-tauluun
määrittelee kyseessä olevan fyysisen laskun.
·
Relaatio InvoiceStatus-tauluun
kuvaa laskuille määritellyt tilat.
·
Relaatio Person-tauluun
määrittelee laskun käsittelijän.
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:
·
Relaatio Invoice-tauluun
määrittelee laskun.
·
Relaatio CourseInstance-tauluun
määrittelee laskutettavat kurssit.
·
Relaatio Person-tauluun
määrittelee laskun käsittelijän.
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:
·
Relaatio Invoice-tauluun
määrittelee laskun.
·
Relaatio PeriodFee-tauluun
määrittelee laskutettavat kausikortit.
·
Relaatio Person-tauluun
määrittelee laskun käsittelijän.
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 7 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.
Kuva 7. Kolibri-projektin Course Bookkeeping -moduulin ER-kaavio (muuttunut rakenne).
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:
· Relaatio Event-tauluun (luku 4.25) määrittelee tapahtumalle näkyvyysarvon.
· Relaatio Language-tauluun (luku 3.13) tarvitaan monikielistämistä varten (katso VisibilityTranslation, luku 7.3).
Esimerkki taulun sisällöstä on taulukossa 145.
Deleted |
VisibilityID |
False |
1 |
False |
2 |
Taulukko 145: 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:
· Relaatio Visibility-tauluun (luku 7.2) määrittelee käännettävän näkyvyysarvon.
· Relaatio Language-tauluun (luku 3.13) määrittelee käännöksessä käytettävän kielen.
Esimerkki taulun sisällöstä on taulukossa 146.
Deleted |
VisibilityID |
LanguageID |
Name |
False |
1 |
1 |
Julkinen |
False |
1 |
4 |
Öffentlich |
Taulukko 146: 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:
· Relaatio Event-tauluun (luku 4.25) määrittelee tapahtumalle prioriteetin.
· Relaatio Language-tauluun (luku 3.13) tarvitaan monikielistämistä varten (katso PriorityTranslation, luku 7.5).
Esimerkki taulun sisällöstä on taulukossa 147.
Deleted |
PriorityID |
False |
1 |
False |
2 |
Taulukko 147: 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:
· Relaatio Priority-tauluun (luku 7.4) määrittelee käännettävän prioriteetin.
· Relaatio Language-tauluun (luku 3.13) määrittelee käännöksessä käytettävän kielen.
Esimerkki taulun sisällöstä on taulukossa 148.
Deleted |
PriorityID |
LanguageID |
Name |
False |
1 |
1 |
Matala |
False |
1 |
4 |
Tief |
Taulukko 148: 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:
· Relaatio Event-tauluun (luku 4.25) liittää palautteen tapahtumaan.
· Relaatio Person-tauluun (luku 3.2) liittää palautteen henkilöön, joka sen on jättänyt.
Esimerkki taulun sisällöstä on taulukossa 149.
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 149: 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:
· Relaatio GroupParticipant-tauluun (luku 4.24) liittää kommentin ryhmän luontihetkeen.
Esimerkki taulun sisällöstä on taulukossa 150.
Deleted |
CommentID |
Comment |
GroupParticipantID |
False |
21 |
Moneltako sieltä saa poistua? |
31 |
False |
22 |
Sisältyykö luku 7 k.o. tenttiin? |
77 |
Taulukko 150: 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:
· Relaatiot EventGroup-tauluun (luku 4.23) määrittelevät tapahtumaryhmän ja aliryhmät.
Esimerkki taulun sisällöstä on taulukossa 151. 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 151: 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:
· Relaatio EventGroupRelationship-tauluun (luku 7.8) määrittelee tapahtumaryhmän suhteen muihin tapahtumaryhmiin.
Esimerkki taulun sisällöstä on taulukossa 152. 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 |
NumberOfOccurences |
Demoryhmä 3 |
100 |
12 |
Salibandyseura |
NULL |
NULL |
Comment |
URI |
ValidUntil |
Tervetuloa! |
www.mit.jyu.fi/~vesal |
2002-01-09 23:59:59+02 |
NULL |
2002-31-12 23:59:59+02 |
.
Taulukko 152: 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:
· Relaatio Visibility-tauluun (luku 7.2) liittää tapahtumalle näkyvyysarvon.
· Relaatio Priority-tauluun (luku 7.4) liittää tapahtumalle prioriteetin.
· Relaatio Note-tauluun (luku 7.6) liittää tapahtumalle palautteet.
Esimerkki taulun sisällöstä on taulukossa 153. 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 153. 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:
· Relaatio tauluun Comment (luku 7.7) liittää ryhmään ilmoittautumishetkeen kommentin.
Esimerkki taulun sisällöstä on taulukossa 154.
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 154. 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.
Esimerkki taulun sisällöstä on taulukossa 155. Siinä määritellään kaksi tapahtumaa, joista jälkimmäinen ei kuulu mihinkään yliopiston organisaatioon.
Deleted |
SpaceID |
OrganisationID |
Code |
False |
26 |
3 |
AgB213.1 |
False |
27 |
NULL |
Bar 68 |
Taulukko 155. Esimerkki Space-taulun sisällöstä.
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 140. 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 |
Taulukko 140: Esimerkki AutoNumber-taulun sisällöstä.
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 141, 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 141: 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 142, 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 142: 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:
· Relaatio Language-tauluun (luku 3.13) tarvitaan moduulien nimien monikielistämiseksi.
Esimerkki Module-taulun käytöstä on taulukossa 143, jossa
määritellään ShowLogoutVerify.jsp-tiedoston ensimmäinen
elementti suomeksi ja englanniksi.
Deleted |
ModuleID |
False |
1 |
False |
2 |
Taulukko 143: 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
taulukossa 144, jossa määritellään kurssikirjanpitomoduulin nimi suomeksi ja
englanniksi.
Deleted |
ModuleID |
LanguageID |
Name |
False |
1 |
1 |
Course
bookkeeping |
False |
1 |
2 |
Kurssikirjanpito |
Taulukko 144: 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 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. Tämän moduulin tietokantaosuuden täytyy kuitenkin mahdollistaa jonkinlainen esitysjärjestelmä, kuten hallinnon kohdalla luvussa 7.1. Ominaisuuden avulla esimerkiksi demoluokkaa kaipaava luennoitsija kirjaisi järjestelmään tiedot uudesta tilatarpeesta. Esitys menisi edelleen jonkinlaisen hyväksymisseulan läpi (kuten luvussa 7.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. Lisätietoja on projektikansion haastatteluosuudessa Elina Laiho-Logrénin haastattelussa.
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.
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ä.