KOTKA-JÄRJESTELMÄ

 

 

 

 

 

 

 

 

Ismo Horppu

Markku Mielityinen

Markku Vire

Hannu Pekkanen

Jussi Kuittinen

Matti Lupari

Minna Hillebrand

Miika Nurminen

 

 

 

 

Tietokantaraportti 15.1.2003

 

 

 

 

 

 

Jyväskylän yliopisto

Tietotekniikan laitos


Kotka-järjestelmän tietokannan tietoja

 

Tekijät:                              Ismo Horppu                       (ishorppu@st.jyu.fi)

                                            Markku Mielityinen              (mmmm@st.jyu.fi)

                                            Markku Vire                        (mavire@st.jyu.fi)

                                            Hannu Pekkanen                  (krimu@st.jyu.fi)

Jussi Kuittinen                      (jmkuitti@st.jyu.fi)                        

Matti Lupari                       (matlupa@st.jyu.fi)

Minna Hillebrand                       (mmhilleb@st.jyu.fi)

Miika Nurminen                   (minurmin@cc.jyu.fi)

 

Työn nimi:                          KOTKA-järjestelmän tietokantaraportti

Työ:                                    Raportti KOTKA-järjestelmän tietokannan rakenteesta.

 

Tiivistelmä:                        KOTKA-projektiryhmä aloitti syksyn 2000 aikana seuraajan kehittämisen Jyväskylän yliopistossa käytössä olevalle Kurki-nimiselle kurssikirjanpitojärjestelmälle. Tätä kehitystyötä jatkoivat Korppi- ja Halko-projektiryhmät keväällä 2001, Kolibri-projektiryhmä syksyllä 2001, Koppelo-projektiryhmä keväällä 2002 ja Kiuru-projektiryhmä syksyllä 2002. KOTKA-järjestelmän tietokantaraportti sisältää  tietokannan taulujen kuvaukset ER-kaavioineen. Dokumentti on suunnattu erityisesti järjestelmän kehitystyötä jatkaville projektiryhmille.

 

Avainsanat:                         Tietokanta, ER-kaavio, PostgreSQL, KOTKA-järjestelmä, Halko-järjestelmä, Korppi-sovellus, Kolibri-sovellus, Koppelo-sovellus, Kiuru-sovellus.

 

 

Versionhallinta

 

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

1.6

17.6.2002

Minna Hillebrand

1.7

8.1.2003

Miika Nurminen

1.8

15.1.2003

Miika Nurminen


Sisällys

1     Johdanto.. 1

2     Organisaatiot.. 2

2.1      Organisaatioiden ER-kaavio.. 2

2.2      AccessRightLevel. 3

2.3      AccessRightLevelTranslation.. 4

2.4      OrgParameterType. 4

2.5      OrgParameterTypeTranslation.. 5

2.6      OrgParameterTypeProt.. 6

2.7      OrganisationType. 6

2.8      OrganisationTypeTranslation.. 7

2.9      Organisation.. 7

2.10     OrganisationTranslation.. 8

2.11     OrganisationParameter.. 9

2.12     OrgRelationship. 9

2.13     AccessRight.. 10

2.14     OrganisationalSeason.. 11

2.15     OrgSeasonPeriod.. 11

2.16     OrganisationalSeasonLang.. 12

2.17     Period.. 12

2.18     PeriodLang.. 13

2.19     BudgetFocus. 13

2.20     OrganisationAddress. 14

3     Henkilöstön hallinta.. 15

3.1      Henkilöiden ja henkilöstön hallinnan ER-kaavio.. 15

3.2      Person.. 17

3.3      Degree. 18

3.4      DegreeType. 19

3.5      DegreeFrom... 19

3.6      Prefix.. 20

3.7      PrefixType. 20

3.8      Address. 21

3.9      PostalInfo.. 22

3.10     AddressType. 22

3.11     PersonParameter.. 23

3.12     PersonParameterType. 23

3.13     Language. 24

3.14     DegreeTypeLanguage. 24

3.15     TranslatedDegreeFrom... 25

3.16     PrefixTypeLanguage. 25

3.17     AddressTypeLanguage. 26

3.18     PersonParameterTypeLanguage. 26

3.19     DegreeTypeProt.. 27

3.20     PrefixTypeProt.. 27

3.21     AddressTypeProt.. 28

3.22     PersonParameterTypeProt.. 28

3.23     Halko-projektin lisäykset Person-moduuliin.. 30

3.23.1     Teacher 31

3.23.2    TeacherParameter 31

3.23.3    TeacherParameterType. 32

3.23.4    TeacherParameterTypeLanguage. 32

4     Kurssikirjanpito.. 34

4.1      Kurssikirjanpidon ER-kaavio.. 34

4.2      Course. 36

4.3      CourseTranslation.. 37

4.4      DescriptionType. 37

4.5      DescriptionTypeTranslation.. 38

4.6      CourseInstance. 38

4.7      CourseDescription.. 39

4.8      CompletionType. 40

4.9      CompletionTypeTranslation.. 40

4.10     CourseInstanceCompletionType. 41

4.11     UserGroup. 41

4.12     UserGroupTranslation.. 42

4.13     CourseParticipant.. 43

4.14     Finished.. 43

4.15     Grade. 44

4.16     GradeTranslation.. 45

4.17     Points. 45

4.18     CalculatePoints. 46

4.19     CalculatePointsLang.. 46

4.20     CalculatePointsCourseInstance. 47

4.21     GroupType. 47

4.22     GroupTypeTranslation.. 48

4.23     EventGroup. 49

4.24     GroupParticipant.. 50

4.25     Event.. 51

4.26     EventPerson.. 52

4.27     Space. 53

4.28     EventSpace. 54

4.29     Resource. 54

4.30     ResourceTranslation.. 55

4.31     SpaceResource. 55

4.32     Field.. 56

4.33     FieldTranslation.. 56

4.34     FieldType. 57

4.35     FieldTypeLang.. 57

4.36     Choice. 58

4.37     ChoiceTranslation.. 58

4.38     FieldChoice. 59

4.39     FieldGroup. 59

4.40     FieldGroupLang.. 60

4.41     FieldProtection.. 60

4.42     Result.. 61

4.43     CourseInstParamInt.. 62

4.44     CourseInstParamIntType. 62

4.45     CourseInstParamIntTypeLang.. 63

4.46     CourseStatus. 63

4.47     CourseStatusLang.. 64

4.48     ObjectGroup. 65

4.49     ObjectGroupLang.. 65

4.50     CourseObjectGroup. 66

4.51     Level. 66

4.52     LevelTranslation.. 67

4.53     Halko-projektin lisäykset Course Bookkeeping-moduuliin.. 67

4.53.1     Subject 69

4.53.2     SubjectTranslation. 69

4.53.3     CourseSubject 70

4.53.4     SubjectOnOrg. 70

4.53.5     CourseFundingOrganisation. 71

5     Opinnäytteiden hallintaosa.. 72

5.1      Opinnäytteiden hallinnan ER-kaavio.. 72

5.2      Koppelo-moduulin vakiotaulut.. 74

5.2.1       AssignmentType ja AssTypeTranslation. 74

5.2.2       StudyLine ja StudyLineTranslation. 75

5.2.3       AssignmentRole ja AssRoleTranslation. 76

5.2.4       AssignmentPhase ja AssPhaseTranslation. 77

5.2.5       AssEventType ja AssEventTypeTranslation. 78

5.2.6       AssignmentDetail ja AssDetailTranslation. 79

5.2.7       AssignmentKeyword ja AssKeywordTranslation. 80

5.3      Opinnäytteen aihe ja opinnäyte. 81

5.3.1       AssignmentOriginal 81

5.3.2       AssOriginalRelDetail 82

5.3.3       AssOriginalRelKeyword. 83

5.3.4       AssOriginalPosLine. 83

5.3.5       AssOriginalPosType. 84

5.3.6       Assignment 84

5.3.7       AssignmentRelDetail 86

5.3.8       AssignmentRelKeyword. 86

5.3.9       AssignmentRelatedPerson. 87

5.4      Opinnäytteen työtehtävät.. 87

5.4.1       AssTaskCategory ja AssTaskCategoryTranslation. 87

5.4.2       AssignmentTask ja AssTaskTranslation. 88

5.4.3       AssTaskTemplate ja AssTaskTemplateTranslation. 89

5.4.4       AssTaskTemplateRelation. 90

5.4.5       AssignmentTaskRelation. 91

5.5      Opinnäytteen tapahtumat ja arvostelu.. 91

5.5.1       AssignmentEvent 92

5.5.2       UnreadMessages. 93

5.5.3       AssignmentFinished. 93

5.6      Oikeudet.. 94

5.6.1       AssignmentRight 95

5.6.2       AssUserGroupRelRight 95

5.6.3       AssRoleRelRight 96

5.6.4       AssPersonRelRight 96

6     Maksujen ja palkkojen hallinta.. 98

6.1      CourseCost.. 99

6.2      TeacherHourlyFee. 100

6.3      PeriodFee. 100

6.4      PeriodFeePeriod.. 101

6.5      InvoiceStatus. 101

6.6      InvoiceStatusLang.. 102

6.7      Invoice. 102

6.8      Bill. 103

6.9      BillStatus. 104

6.10     InvoiceItemCourse. 105

6.11     InvoiceItemFee. 106

7     Kolibri-projektin tekemät muutokset Course Bookkeeping -moduuliin.. 107

7.1      Kurssikirjanpito-moduulin ER-kaavio.. 107

7.2      Visibility.. 108

7.3      VisibilityTranslation.. 108

7.4      Priority.. 109

7.5      PriorityTranslation.. 109

7.6      Note. 110

7.7      Comment.. 110

7.8      EventGroupRelationship. 111

7.9      EventGroup-tauluun tehdyt muutokset.. 111

7.10     Event-tauluun tehdyt muutokset.. 112

7.11     GroupParticipant-tauluun tehdyt muutokset.. 113

7.12     Space-tauluun tehdyt muutokset.. 114

8     Salivaraukset ja resurssipyynnöt.. 115

8.1      Salivarausmoduulin ER-kaavio.. 115

8.2      Salit ja saliryhmät.. 117

8.2.1       SpaceType. 117

8.2.2       SpaceGroupType. 117

8.2.3       SpaceGroup. 118

8.2.4       SpaceGroupSpace. 118

8.2.5       SpaceGroupRelationship. 119

8.2.6       SpaceParameterType. 120

8.2.7       SpaceParameter. 120

8.2.8       SpaceGroupPerson. 121

8.3      Salivaraukset.. 121

8.3.1       RequestState. 122

8.3.2       Reservation. 122

8.3.3       ReservationParameterType. 123

8.3.4       ReservationParameter. 124

8.3.5       ReservationRole. 124

8.3.6       ReservationPerson. 125

8.4      Resurssipyynnöt.. 125

8.4.1       ResourceRequest 125

8.4.2       ResourceRequestRecord. 126

8.4.3       ResourceRequestEventGroup. 127

8.5      Kiuru-projektin tekemät muutokset olemassaoleviin tauluihin.. 127

8.5.1       Space-tauluun tehdyt muutokset 127

8.5.2       Resource-tauluun tehdyt muutokset 128

8.5.3       PersonParameterType-tauluun tehdyt muutokset 128

8.5.4       OrgParameterType-tauluun tehdyt muutokset 129

9     Muut moduulit.. 130

9.1      AutoNumber.. 130

9.2      LocalizedUI 130

9.3      Ini 131

9.4      Module. 131

9.5      ModuleLanguage. 132

10       Kehitysasteella olevien moduulien taulutarpeet.. 133

10.1     Henkilöstön, projektien ja raha-asioiden hallinta ja suunnittelu.. 133

10.1.1     Projektien hallinta. 133

10.1.2     Ehdotusten käsittely. 133

10.1.3     Vierailijoiden tiedot 134

10.2     Kurssien, tenttien ja resurssien sijoittumisen suunnittelu.. 134

10.3     Viestimoduli 135

11       Käytetyt epästandardit SQL-piirteet.. 136

11.1     Reservation- ja EventSpace-taulujen synkronointi 136

    


1       Johdanto

Syksyn 2000 Kotka-projektiryhmä aloitti seuraajan kehittämisen Jyväskylän yliopistossa käytössä olevalle Kurki-nimiselle kurssikirjanpitojärjestelmälle. Työn laajuudesta johtuen syksyn 2000 projektiryhmän vastuualueeksi muodostui lähinnä uuden järjestelmän tarpeiden määrittely haastatteluiden avulla, vastaavan tietokantarakenteen hahmottelu ja prototyyppimodulin kehittäminen.

Suuresta työmäärästä johtuen Kotka-projektissa rajoituttiin muutamaan keskeiseen moduuliin ER-kaavioiden teossa (katso selvitys moduuleista Kotka-projektisuunnitelman luvusta 5), joita olivat henkilöstön hallinta, kurssikirjanpito ja opinnäytteet. Koska projektiorganisaatioon kuuluvilla henkilöillä ei ollut riittävästi tietoa muihin moduuleihin tarvittavista ominaisuuksista ja toiminnoista, tyydyttiin niiden taulurakenteista tekemään vain ylimalkaisia hahmotelmia.

Keväällä 2001 Korppi-projektiryhmä jatkoi tätä kehitystyötä toteuttaen kurssikirjanpitojärjestelmän. Kolibri-projektityöryhmä kehitti järjestelmään kalenteri- ja ajanvarausosiota syksyllä 2001. Koppelo-projektiryhmä muokkasi Kotka-projektin suunnitteleman opinnäytteiden hallintaosan toteuttaen opinnäytteiden hallintasovelluksen. Kiuru-projektiryhmä toteutti varaussovelluksen ja suunnitteli resurssien varaukseen, suunnitteluun ja jakoon liittyvää osiota.

Jokainen Kotka-järjestelmää kehittänyt projekti on päivittänyt tekemänsä muutokset tietokantaraporttiin. Tästä huolimatta raportti ei täysin vastaa tietokannan todellista tilannetta, koska järjestelmän jatkokehityksen yhteydessä toteutettuja muutoksia ei ole kirjattu raporttiin. Uusia muutoksia tehtäessä tulevien projektien on varmistettava tietokannan tilanne Kotka-järjestelmän ylläpidolta tai suoraan PostgreSQL-tietokantaohjelmiston apuohjelmia käyttäen.

Luvussa 2 esitellään organisaatioiden tietojen ja suhteiden tallentamiseen tarvittavat taulut. Ne eivät kuulu suoraan mihinkään moduuliin, vaan kyseisiä osioita tarvitaan lähes kaikissa moduuleissa. Luku 3 esittelee osittaisen henkilöstöhallintamoduulin. Luku 4 keskittyy kurssikirjanpidon taulurakenteen kuvaamiseen. Luku 5 sisältää Koppelo-projektin muokkaaman opinnäyteosuuden. Luku 6 esittelee maksujen ja palkkojen hallinnan. Luku 7 käsittää Kolibri-projektin toteuttamat lisäykset ja muutokset järjestelmän tietokantaan. Luku 8 käsittää Kiuru-projektin tekemät lisäykset varaussovellusta ja resurssien jakoa varten. Luku 9 esittelee muita järjestelmän tarvitsemia tauluja. Luvussa 10 kerrotaan lyhyesti niistä moduuleista, joiden suunnittelu on oleellisilta osiltaan kesken tai lähes kokonaan aloittamatta. Luvussa 11 selvitetään järjstelmän käyttämät PostgreSQL-tietokantaohjelmiston erityispiirteet.

Jokaisessa luvussa on ER-kaavion lisäksi taulukohtainen kuvaus kenttien käyttötarkoituksista, relaatioiden merkityksestä sekä lyhyt esimerkki tallennettavan datan muodosta. Käytetyn PostgreSQL-tietokantaohjelmiston asettamien rajoitusten vuoksi taulujen nimet piti saada mahtumaan 31 merkin tilaan, joka kannattaa huomioida käännös- ja suojaustaulujen nimeämisen osalta.

Kantaa suunniteltaessa päätettiin, ettei mitään dataa todellisuudessa poisteta kannasta, vaan poistettavaksi tarkoitettu data vaan merkitään poistetuksi. Tätä tarkoitusta varten jokaisesta taulukosta löytyy Deleted-kenttä. Lisäksi kaikki järjestelmän tarjoamat vakiotekstit on tallennettu kaikilla järjestelmän tuntemilla kielillä. Sen sijaan käyttäjän syöttämät tiedot tallennetaan yleensä vain yhdellä kielellä. Poikkeuksena on lähinnä kurssikuvausten tallentaminen.


2       Organisaatiot

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.

2.1        Organisaatioiden ER-kaavio

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.

2.2        AccessRightLevel

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ä.

 

2.3        AccessRightLevelTranslation

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ä.

2.4        OrgParameterType

Organisaatioille tulee voida asettaa dynaamisesti kaikenlaista lisätietoa, kuten vaikka WWW-osoitteita. Taulukossa OrgParameterType määritellään kaikki lisätietotyypit, jotta lisätietojen luokittelu esittämistä varten onnistuu helposti. Itse taulu on määritelty seuraavasti:

Deleted                                                   kertoo, onko tyyppi poistettu.

OrgParameterTypeID    on taulukon avainkenttä.

Name                  on parametrin nimi.


Tauluun liittyvät relaatiot ovat seuraavat:

·        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

Name

False

1

Vastuualue

Taulukko 3: Esimerkki OrgParameterType-taulun käytöstä.

2.5        OrgParameterTypeTranslation

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ä.


2.6        OrgParameterTypeProt

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ä.

2.7        OrganisationType

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ä.

2.8        OrganisationTypeTranslation

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ä.

2.9        Organisation

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ä.

2.10    OrganisationTranslation

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ä.


2.11    OrganisationParameter

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ä.

2.12    OrgRelationship

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ä.

2.13    AccessRight

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ä


2.14    OrganisationalSeason

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ä.

2.15    OrgSeasonPeriod

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ä.

2.16    OrganisationalSeasonLang

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ä.

2.17    Period

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ä.

2.18    PeriodLang

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ä.

2.19    BudgetFocus

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ä.

2.20    OrganisationAddress

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ä.


3       Henkilöstön hallinta

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.

 

 

3.1        Henkilöiden ja henkilöstön hallinnan ER-kaavio

Kuvassa 2 on esitetty henkilöihin ja henkilöstön hallintoon liittyvät taulut ER-kaavion muodossa. Tauluja käsitellään tarkemmin seuraavissa alaluvuissa.

Henkilöiden saavuttamat oppiarvot kirjataan Degree-, DegreeType-, DegreeFrom- ja Grade-taulujen avulla (luvut 3.3-3.5 ja 4.14). Oppiarvoista voitaisiin antaa esimerkkinä maisterin ja tohtorin tutkinnot. Tittelit ja työtehtävät kirjataan Prefix- ja PrefixType-tauluihin. Tällaisia ovat esimerkiksi arkkiatrin titteli ja professorin virka. Henkilöiden osoitteet kirjataan Address-, PostalInfo- ja  AddressType-tauluihin (luvut 3.8 ja 3.9). Osoitteissa erotellaan ainakin työ-, koti- ja mökkiosoite. Kaikki muut henkilön henkilökohtaiset parametrit kirjataan tauluihin PersonParameter ja PersonParameterType (luvut 3.10 ja 3.11). Näitä ovat esimerkiksi puhelinnumerot, sähköpostiosoitteet, aloitusvuosi ja opintolinja.

Kaikki tietokantaan tallennetut tiedot monikielistetään yhdistämällä ne many-to-many -suhteella Language-tauluun (luku 3.13). Aktiivisena kielenä on kullekin käyttäjälle hänelle Person-taulussa (luku 3.2) määritelty kieli.

Henkilöistä kirjattujen tietojen käsittelyyn tarvittavat käyttöoikeudet määritellään yhdistämällä ne many-to-many -suhteella AccessRightLevel-tauluun (luku 2.2). Jokaisella henkilöllä tulee olla minimimääräoikeuksia, jolloin hän voi ainakin lukea itseään koskevia tietoja.

Henkilöstön hallinnan osalta kaikkia tarvittavia tauluja ei ole vielä suunniteltu. Esimerkiksi rahankäytön ja projektienhallinnan tarvitsemat taulurakenteet puuttuvat. Näistä kerrotaan lisää hallinnollisia asioita käsittelevässä luvussa 10.1.

Kuva 2. Kotka-tietokannan Person-osion ER-kaavio.

3.2        Person

 

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ä.

3.3        Degree

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ä.

3.4        DegreeType

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ä.

3.5        DegreeFrom

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ä.

3.6        Prefix

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ä.

3.7        PrefixType

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ä.

3.8        Address

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ä.


3.9        PostalInfo

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ä.

3.10    AddressType

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ä.

 

 

 

 

3.11    PersonParameter

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ä.

3.12    PersonParameterType

Tässä taulussa esitellään kaikki järjestelmän hyväksymät parametrityypit. Toiminta on läheisessä sidoksessa tauluun PersonParameter (luku 3.11), johon varsinaiset parametrit kirjataan. Taulun rakenne on seuraava:

Deleted                                      kertoo, onko parametrityyppi poistettu.

PersonParameterTypeID   on taulun avainkenttä.

BelongsInGroup                 ryhmittelee parametrit.

Name                  on parametrin nimi

 

Tauluun liittyvät relaatiot ovat seuraavat:

 

 

Esimerkki PersonParameterType-taulun käytöstä on taulukossa 30.

 

Deleted

PersonParameterTypeID

Name

False

1

Puhelin

False

2

WWW-osoite

Taulukko 30: Esimerkki PersonParameterType-taulukon sisällöstä.

 

3.13    Language

Tämä taulu on koko KOTKA-järjestelmän käytössä ja sillä esitellään järjestelmän tukemat kielet. Taulun kentät ovat seuraavat:

Deleted                                      kertoo, onko kieli poistettu.

LanguageID                               on taulun avainkenttä.

Name                  on kielen nimi.

 

Tauluun liittyy relaatio kaikista järjestelmän tauluista, joiden nimessä on pääte lang, language tai translation. Relaatioita käytetään järjestelmän monikielistämiseen.

 

Esimerkki Language-taulun käytöstä on taulukossa 31.

 

Deleted

LanguageID

Name

False

1

English

False

2

Finnish

Taulukko 31: Esimerkki Language-taulun sisällöstä.

 

 

 

3.14    DegreeTypeLanguage

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ä.

3.15    TranslatedDegreeFrom

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ä.

3.16    PrefixTypeLanguage

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ä.

3.17    AddressTypeLanguage

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ä.

3.18    PersonParameterTypeLanguage

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ä.

3.19    DegreeTypeProt

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ä.

3.20    PrefixTypeProt

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ä.

3.21    AddressTypeProt

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ä.

3.22    PersonParameterTypeProt

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ä.


3.23    Halko-projektin lisäykset Person-moduuliin

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.

 


3.23.1  Teacher

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ä.

 

3.23.2  TeacherParameter

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ä.

 

3.23.3  TeacherParameterType

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ä.

 

3.23.4  TeacherParameterTypeLanguage

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ä.

 


4       Kurssikirjanpito

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.

 

4.1        Kurssikirjanpidon ER-kaavio

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.

 


4.2        Course

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ä.


4.3        CourseTranslation

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ä.

 

4.4        DescriptionType

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ä.

4.5        DescriptionTypeTranslation

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ä.

4.6        CourseInstance

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ä.

4.7        CourseDescription

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ä

4.8        CompletionType

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ä.

4.9        CompletionTypeTranslation

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ä.

4.10    CourseInstanceCompletionType

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ä.

4.11    UserGroup

Tämä taulu määrittelee kurssikirjanpitomoduulin käyttäjäryhmät, kuten kurssilaiset ja luennoitsijat. Tämän taulun nimeä on ehdotettu vaihdettavaksi kuvaavammaksi, sillä kehitettävänä on Kurki-järjestelmän seuraaja. Tosin taulun nimi ei näy sovelluksen käyttäjälle mitenkään, joten aivan pakollista se ei ole. Taulun rakenne on seuraava:

Deleted                                      kertoo, onko käyttäjäryhmä poistettu.

UserGroupID                            on taulun avainkenttä.

 


Tauluun liittyvät relaatiot ovat seuraavat:

·        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).

 

Esimerkki taulun sisällöstä esitetään taulukossa 55.

 

Deleted

UserGroupID

False

1

False

2

Taulukko 55: Esimerkki UserGroup-taulun sisällöstä.

4.12    UserGroupTranslation

Tämä taulu määrittelee kaikille kurssikirjanpidon käyttäjäryhmille nimet kaikilla järjestelmän käyttämillä kielillä. Luvussa 4.11 esitetyt moitteet taulun nimeämisessä koskevat myös UserGroupTranslation-taulua. Taulun rakenne on seuraava:

Deleted                                      kertoo, onko käännös poistettu.

UserGroupID                            määrittelee ko. käyttäjäryhmän.

LanguageID                               määrittelee käsiteltävän kielen.

Name                                              sisältää varsinaisen käännöksen.

 

Tauluun liittyvät relaatiot ovat seuraavat:

·        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.

 

Mikäli käyttäjäryhmät ovat kuten taulukossa 55, voisi UserGroupTranslation-taulun sisältö näyttää taulukossa 56 esitetyn kaltaiselta.

 

Deleted

UserGroupID

LanguageID

Name

False

1

1

Lecturer

False

1

2

Luennoitsija

False

2

1

Student

False

2

2

Opiskelija

Taulukko 56: Esimerkki UserGroupTranslation-taulun sisällöstä.


4.13    CourseParticipant

Tässä taulussa määritellään kaikki kursseille osallistuvat henkilöt. Tänne tallennetaan tiedot niin kurssilaisista, luennoitsijoista kuin demonpitäjistäkin. Ryhmät erotellaan toisistaan UserGroupID-kentän perusteella. Kurssille ilmoittautuminen tapahtuu lisäämällä rivi tähän tauluun. Taulun rakenne on seuraava:

Deleted                                      kertoo, onko osallistuja poistettu.

PersonID                                    määrittelee kurssille osallistuvan henkilön.

CourseID                                    määrittelee henkilölle kurssin.

UserGroupID                            määrittelee henkilön roolin kurssilla.

 

Tauluun liittyvät relaatiot ovat seuraavat:

·        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.

 

Mikäli käyttäjäryhmät on määritelty taulukossa 55 esitetyllä tavalla, voisi CourseParticipant-taulukon sisältö näyttää taulukon 57 kaltaiselta. Tässä esimerkissä henkilö 1 on luennoitsijana kurssilla 1 ja henkilö 2 on kurssilainen samalla kurssilla.

 

Deleted

PersonID

CourseID

UserGroupID

False

1

1

1

False

2

1

2

Taulukko 57: Esimerkki CourseParticipant-taulukon sisällöstä.

4.14    Finished

Finished-tauluun merkitään kaikki hyväksytyt kurssit. Taulun rakenne on seuraava:

Deleted                                      kertoo, onko arvosana poistettu.

PersonID                                    määrittelee henkilön jonka tiedoista on kyse.

Person2ID                                 kertoo tuloksen kirjaajan.

CourseID                                    kertoo tapahtumaan liittyvän kurssin.

GradeID                                      määrittelee arvosteluasteikon.

Credits                                      kertoo opintoviikkomäärän.

Code                                              kertoo kurssin koodin.

FinishedOn                               kertoo, milloin kurssi on hyväksytty.

RegisteredOn                          kertoo, milloin kurssi on rekistetöity.

 


Tauluun liittyvät relaatiot ovat seuraavat:

·        Relaatio Person-tauluun (luku 3.2) määrittelee tarvittavien henkilöiden tiedot.

·        Relaatio Grade-tauluun (luku 4.15) määrittelee arvosana-asteikon.

 

Taulun sisältö voisi näyttää esimerkiksi taulukon 58 kaltaiselta.

 

Deleted

PersonID

Person2ID

CourseID

GradeID

Credits

False

1

3

2

1

2

False

2

4

4

2

4

 

Code

FinishedOn

RegisteredOn

TIE110

2001-03-20

2001-04-30

TIE220

2001-03-30

2001-04-20

Taulukko 58: Esimerkki Finished-taulun sisällöstä.

4.15    Grade

Tämä taulu sisältää kaikki järjestelmässä käytettävät arvosanat. Taulun rakenne on seuraava:

Deleted                                      kertoo, onko arvosana poistettu.

GradeID                                      on taulun avainkenttä.

BelongsInGroup                                           kertoo mihin ryhmään arvosana kuuluu.

 

Tauluun liittyvät relaatiot ovat seuraavat:

·        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).

 

Taulun sisältö voisi näyttää esimerkiksi taulukon 59 kaltaiselta.

 

Deleted

GradeID

BelongsInGroup

False

1

1

False

2

2

Taulukko 59: Esimerkki Grade-taulun sisällöstä.


4.16    GradeTranslation

Tämä taulu sisältää kaikki järjestelmässä käytettävät arvosanat tekstimuodossa kaikilla järjestelmässä käytetyillä kielillä. Käännöstaulu tarvitaan, sillä osa arvosanoista on sanallisia (kuten hyväksytty ja hylätty). Taulun rakenne on seuraava.

Deleted                                      kertoo, onko käännös poistettu.

GradeID                                      määrittelee käännettävän arvosanan.

LanguageID                               määrittelee kielen, jolle arvosana käännetään.

Name                                              sisältää varsinaisen käännöksen.

 

Tauluun liittyvät relaatiot ovat seuraavat:

·        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.

 

Mikäli arvosanat on määritelty taulukossa 59 esitetyllä tavalla, voisi GradeTranslation-taulu näyttää taulukon 60 kaltaiselta.

 

Deleted

GradeID

LanguageID

Name

False

1

1

Failed

False

1

2

Hylätty

False

2

1

Passed

False

2

2

Hyväksytty

Taulukko 60: Esimerkki GradeTranslation-taulusta.

4.17    Points

Tämä taulu sisältää kaikki tiedot pistemääristä. Taulun rakenne on seuraava:

Deleted                                      kertoo, onko arvosana poistettu.

PointsID                                    on taulun avainkenttä.

NumberOfPoints                                           kertoo pisteiden lukumäärän.

CalculatePointsID             kertoo tiedon mitä kaavaa käyttäen pisteet lasketaan.

GradeID                                      Määrittelee arvosana-asteikon.

 

Tauluun liittyvät relaatiot ovat seuraavat:

·        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.

 


Taulun sisältö voisi näyttää esimerkiksi taulukon 61 kaltaiselta.

 

Deleted

PointsID

NumberOfPoints

CalculatePointsID

GradeID

False

1

15

1

1

False

2

20

2

2

Taulukko 61: Esimerkki Points-taulun sisällöstä.

4.18    CalculatePoints

Tämä taulu sisältää tiedon siitä, miten arvosana lasketaan. Taulun rakenne on seuraava:

Deleted                                      kertoo, onko arvosana poistettu.

CalculatePointsID             on taulun avainkenttä

 

Tauluun liittyvät relaatiot ovat seuraavat:

·        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.

 

Taulun sisältö voisi näyttää esimerkiksi taulukon 62 kaltaiselta.

 

Deleted

CalculatePointsID

False

1

False

2

Taulukko 62: Esimerkki CalculatePoints-taulun sisällöstä.

4.19    CalculatePointsLang

Tämä taulu sisältää järjestelmässä käytettävien arvosteluasteikkojen käännökset. Taulun rakenne on seuraava.

Deleted                                      kertoo, onko käännös poistettu.

CalculatePointsID             määrittelee käännettävän arvosanan.

LanguageID                               määrittelee kielen, jolle arvosana käännetään.

Name                                              sisältää varsinaisen käännöksen.

 

Tauluun liittyvät relaatiot ovat seuraavat:

·        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.

 


Taulu näyttää taulukon 63 kaltaiselta.

 

Deleted

CalculatePointsID

LanguageID

Name

False

1

2

Oma_arvostelu

False

2

2

Norm_arvostelu

Taulukko 63: Esimerkki CalculatePointsLang-taulusta.

4.20    CalculatePointsCourseInstance

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ä.

4.21    GroupType

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ä.

4.22    GroupTypeTranslation

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ä.


4.23    EventGroup

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

www.mit.jyu.fi

27-04-2002 00:00:00+03

opetusryhmä

NULL

30-08-2003+03

Jalkapallojoukkue

 

Taulukko 67: Esimerkki EventGroup-taulun sisällöstä.

4.24    GroupParticipant

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.

4.25    Event

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.

4.26    EventPerson

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ä.

4.27    Space

Space-taulu määrittelee kaikki järjestelmän tuntemat tilat, kuten luentosalit ja demoluokat. Lisäksi Space käsittää järjestelmän tuntemat varattavat resurssit (esim. liikuteltavat videoprojektorit). Jos tietue on resurssi, sen täytyy sisältää 1 to 1 –suhde Resource-tauluun, jossa kuvataan resurssin tyyppi (tällöin ”salin” tyyppi on Oheisvarattava). Tauluun on esitetty lisättäväksi tilasta kertova kommentti, joka tietysti pitäisi monikielistää. Taulun rakenne on seuraava:

Deleted                                      kertoo, onko tila poistettu järjestelmästä.

SpaceID                                      on taulun avainkenttä

Code                                              kertoo tilan koodin, esimerkiksi MaA102.

OrganisationID                              määrittelee organisaation, jonka hallintaan tila kuuluu.

SpaceTypeID           määrittelee salin tyypin, esimerkiksi mikroluokka. Jos tyyppi ei ole tiedossa, se voi olla NULL.

 

Tauluun liittyvät relaatiot ovat seuraavat:

·        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).

·        Relaatio SpaceType-tauluun (luku 8.2.1) määrittelee salin tyypin.

 

Esimerkki tilataulun käytöstä on taulukossa 71.

 

Deleted

SpaceID

Code

OrganisationID

SpaceTypeID

False

1

MaA102

1

1

False

2

MaD202

1

NULL

Taulukko 71: Esimerkki Space-taulun sisällöstä.

 

 

 

 

4.28    EventSpace

EventSpace-taulu määrittelee Event-taulussa (luku 4.25) esiintyneille tapahtumille tilat. Samalle tapahtumalle voidaan tarvittaessa ilmoittaa useampia tiloja. Jos vastaavasta tapahtumasta on tehty salivaraus Reservation-tauluun ja EventSpacen tietoja muutetaan, varauksen tietoja päivitetään luvussa 11.1 määritellyn säännön mukaisesti. Taulun rakenne näyttää seuraavalta:

Deleted                 kertoo, onko tilavaraus poistettu.

EventID                 kertoo tilaan liittyvän tapahtuman.

SpaceID                 määrittelee varatun tilan.

 

 

Tauluun liittyvät relaatiot ovat seuraavat:

·        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ä.

4.29    Resource

Resource-taulussa määritellään tunnetut resurssit. Resurssilla tarkoitetaan mitä tahansa ominaisuutta tai esinettä, joka voidaan liittää tiloihin ja hyödyntää salivarausten suunnittelussa. Resursseja ovat esimerkiksi taulut, piirtoheittimet, mikrot ja istumapaikat. Taulun rakenne on seuraava:

Deleted                 kertoo, onko resurssi poistettu.

ResourceID         on taulun avainkenttä.

Name          sisältää resurssityypin nimen.

 

Tauluun liittyvät relaatiot ovat seuraavat:

·        Relaatiota Language-tauluun (luku 3.13) tarvittiin resurssinimien monikielistämiseksi (katso luvun 4.30 taulu ResourceTranslation). Relaation käytöstä luovuttiin Kiuru-projektin aikana.

·        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

Name

False

1

Paikkamäärä

False

2

Liitutaulu

Taulukko 73: Esimerkki Resource-taulusta.

4.30    ResourceTranslation

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.

 

Mikäli resurssit ovat kuten taulukossa 74, voisi ResourceTranslation-taulun sisältö näyttää taulukossa 60 esitetyn kaltaiselta.

 

Deleted

ResourceID

LanguageID

Name

False

1

1

seats

False

1

2

istumapaikkoja

False

2

1

phone

False

2

2

puhelin

Taulukko 74: Esimerkki ResourceTranslation-taulun sisällöstä.

4.31    SpaceResource

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ä.


4.32    Field

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ä.

4.33    FieldTranslation

Tämä taulu määrittelee kaikille kenttätyypeille nimet kaikilla järjestelmän käyttämillä kielillä. Taulun rakenne on seuraava:

Deleted                                      kertoo, onko käännös poistettu.

FieldID                                      määrittelee ko. kenttätyypin.

LanguageID                               määrittelee ko. kielen.

Name                                              sisältää varsinaisen käännöksen.

 


Tauluun liittyvät relaatiot ovat seuraavat:

·        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ä.

 

4.34    FieldType

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ä.

4.35    FieldTypeLang

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ä.

4.36    Choice

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ä.

4.37    ChoiceTranslation

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ä.

4.38    FieldChoice

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ä.

4.39    FieldGroup

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ä.

4.40    FieldGroupLang

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ä.

4.41    FieldProtection

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ä.

4.42    Result

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ä.


4.43    CourseInstParamInt

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ä.

4.44    CourseInstParamIntType

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ä.

4.45    CourseInstParamIntTypeLang

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ä.

4.46    CourseStatus

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ä.

4.47    CourseStatusLang

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ä.


4.48    ObjectGroup

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ä.

4.49    ObjectGroupLang

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ä.

4.50    CourseObjectGroup

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ä.

4.51    Level

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ä.

4.52    LevelTranslation

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ä.

4.53    Halko-projektin lisäykset Course Bookkeeping-moduuliin

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.


4.53.1    Subject

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ä.

 

4.53.2    SubjectTranslation

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ä.

 


4.53.3    CourseSubject

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ä.

 

4.53.4    SubjectOnOrg

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ä.

 

4.53.5    CourseFundingOrganisation

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ä.

 

 


5       Opinnäytteiden hallintaosa

 

Luvussa esitellään  Koppelo-projektin luomat taulut opinnäytteiden hallintaosaan. Kotka-projektin luoma taulurakenne hylättiin toisaalta vanhentuneena ja toisaalta  joidenkin pienten epäloogisuuksien vuoksi. Koppelo-projektin suunnittelema ER-kaavio on esitetty kuvassa 6.

Koppelo-sovellukseen  luodut  taulut käyttävät Kotka-tietokannan tauluja henkilö-, kurssi-  ja  organisaatiohallinnan puolelta. Henkilöhallinnan puolelta (luku 3)  yhteys     tarvitaan    luonnollisesti    henkilöiden    liittämiseksi   opinnäytteisiin.  Toisaalta  henkilöhallinnan  puolta  tarvitaan  myös   oikeustasojen määräämiseen Koppelo-sovelluksessa.

Kurssikirjanpidon  puolta (luku 4) tarvitaan  liittämään  opinnäyte määrättyyn   kurssikoodiin.  Organisaatioiden  hallinnan puolta (luku 2) on hieman kehitetty   Koppelo-sovelluksessa  toteuttamalla  uusi  taulu  laitosten  linjojen   esittämiseen.  

 

5.1        Opinnäytteiden hallinnan ER-kaavio

Kuvassa 6 on esitetty opinnäytteiden hallintaan tarvittavat lisätaulut. ER-kaaviossa on nimetty suurin osa Koppelo-sovelluksen tarvitsemista tauluista ja vain muutamat taulut esiintyvät kaaviossa MtoM-suhteina. Nämä MtoM-suhteet on mainittu kyseisten taulujen esittelyjen kohdalla.

                      Suhteet muuhun Kotka-järjestelmän tietokantaan on merkitty ER-kaavioon asettamalla muistilappu sellaisten taulujen kohdalle, jotka kuuluvat jo olemassaolevaan kantaan.

Kaikki opinnäytteisiin liittyvät käännöstaulut (Translation) on merkitty ER-kaaviossa pienenä pallona käännöstä vastaavan taulun päässä. Pallo tarkoittaa relaatiota kyseisen taulun ja Kotka-kannan Language-taulun (luku 3.13) välillä. Relaatioon liittyy käännös, joka esiintyy taulussa nimellä Name. Kyseinen notaatio esiintyy muissakin Kotka-järjestelmän tietokantasuunnitelmissa (kuvat 1, 2, 3, 4 ja 5). Ratkaisulla säästetään huomattavasti tilaa ER-kaavioissa.

Taulut on nimetty käyttötarkoituksen mukaan. Lähes kaikkien taulujen nimiin liittyy opinnäytettä tarkoittava etuliite Assignment tai Ass, jotta opinnäytekokonaisuuden muodostavat taulut olisi helposti erotettavissa muista KOTKA-tietokannan tauluista. Etuliitettä Assignment käytetään silloin, kun taulun nimen loppuosa muodostuu yhdestä lyhyestä sanasta. Lyhennettä Ass käytetään useampiosaisten tai muutoin pitkien nimien yhteydessä. Jälkiliite Translation taulun perässä ilmaisee, että kyseisessä taulussa säilytetään ko. tiedon käännöksiä.

Taulujen ensisijaiset avaimet (engl. primary key) on nimetty lisäämällä taulun nimeen perään kirjaimet PK. Toissijaiset avaimet (engl. foreign key) on nimetty käyttämällä taulun nimen jäljessä kirjaimia FK ja kyseisen kentän kolmea ensimmäistä kirjainta. Joissain harvoissa tapauksissa taulussa on kaksi toissijaista viiteavainta, joiden nimi alkaa samoilla kirjaimilla. Tällöin on sääntöä hieman sovellettu.

 

 

 

 

 

 

Kuva 6. Koppelo-projektin määrittelemän opinnäyteosuuden ER-kaavio.


5.2        Koppelo-moduulin vakiotaulut

Luvussa   esitellään   opinnäytteiden  hallinnoimiseksi  tarkoitettuja   vakiotauluja.   Kyseiset taulut  sisältävät pääosin  KOPPELO-sovelluksen  kannalta staattista ylläpitäjän asettamaa tietoa.

 

5.2.1        AssignmentType ja AssTypeTranslation

 

AssignmentType-taulu    yhdessä    AssTypeTranslation-taulun    kanssa   muodostaa    luettelon    kaikista    tietokantaan    tallennettavista   opinnäytetyypeistä.  Järjestelmän  ylläpitäjän  vastuulla  on  tuottaa   tauluun  käyttäjien  tarvitsema  sisältö.  Taulussa  AssignmentType on   kunkin  opinnäytetyypin  id-numerot  ja taulussa  AssTypeTranslation on   käännökset opinnäytetyypeille.

Taulun  AssignmentType  rakenne  ja kentät on kuvattu alla. Tauluun ei   liity relaatioita.

Deleted                                      kertoo, onko opinnäytetyyppi poistettu taulusta.

TypeID                                         on opinnäytetyypin id ja samalla taulun avainkenttä.

DefaultTimeInDB        ilmaisee, kuinka kauan kyseistä opinnäytetyyppiä oleva aihe säilytetään tietokannassa ellei käyttäjä anna muuta aikaa. Oletusaika annetaan vuorokausina.

MaxTimeInDB            pisimmän  mahdollisen  ajan,  joka  kyseisestä tyyppiä oleva opinnäytteen aihe säilytetään tietokannassa. Maksimiaika   annetaan vuorokausina.

Taulun   AssTypeTranslation   rakenne,   kentät  ja  relaatiot  muihin tauluihin on esitetty alla.

Deleted                kertoo, onko käännös poistettu taulusta.

TypeID                 on opinnäytetyypin id ja samalla osa taulun perusavainta. Kentän relaatio tauluun AssignmentType liittää käännöksen yksittäiseen   opinnäytteeseen.

LanguageID             on  käytetyn kielen id ja samalla osa taulun perusavainta.   Relaatio  Language-tauluun  liittää  käännökseen  jonkin   Kotka-kannan kielen.

Name                   sisältää opinnäytteen tyypin määritellyllä kielellä.

 

Taulukoissa 5.1 ja 5.2 on esimerkki taulujen käytöstä:

 

Deleted

TypeID

DefaultTimeInDB

MaxTimeInDB

False

1

90

180

False

2

90

180

Taulukko 5.1: Esimerkki AssignmentType-taulun sisällöstä.

 

 

Deleted

TypeID

LanguageID

Name

False

1

2

Harjoitustyö

False

2

2

Cum laude

työprojekti

Taulukko 5.2: Esimerkki AssTypeTranslation-taulun sisällöstä.

 

5.2.2        StudyLine ja StudyLineTranslation

 

StudyLine-taulu  yhdessä  StudyLineTranslation-taulun kanssa muodostaa   luettelon  kaikista tietokantaan tallennettavista laitosten linjoista.   Taululle on tarvetta myös Koppelo-projektin ulkopuolisissa yhteyksissä   (esimerkiksi   keväällä   2002  toteutettava  Uraani-projekti  käyttää   kurssien  linjojen  käsittelyyn  samaa  taulua). Tämän vuoksi kyseistä   taulua     ei     ole     nimetty    Koppelo-sovelluksen tauluille yleiseen Assignment-tyyliin.

Taulun  StudyLine  rakenne,  kentät  ja  relaatiot muihin tauluihin on   esitetty alla.

Deleted                                      kertoo, onko linja poistettu taulusta.

LineID                                         on linjan id ja samalla taulun avainkenttä.

OrganisationID         ilmoittaa laitoksen id:n. Tämä relaatio liittää linjan tiettyyn laitokseen. Kenttä viittaa Organisation-tauluun.

Taulun   StudyLineTranslation   rakenne,   kentät  ja  relaatiot  muihin tauluihin on esitetty alla.

Deleted                kertoo, onko käännös poistettu taulusta.

LineID                 on linjan id ja samalla osa taulun perusavainta. Kentän relaatio tauluun StudyLine liittää käännöksen yksittäiseen   linjaan.

LanguageID             on  käytetyn kielen id ja samalla osa taulun perusavainta.   Relaatio  Language-tauluun  liittää  käännökseen  jonkin   Kotka-kannan kielen.

Name                   sisältää linjan nimen määritellyllä kielellä.

 

Taulukoissa 5.3 ja 5.4 on esimerkki taulujen käytöstä:

 

Deleted

LineID

OrganisationID

False

1

3

False

2

3

Taulukko 5.3: Esimerkki StudyLine-taulun sisällöstä.

 

 

 

 

 

Deleted

LineID

LanguageID

Name

False

1

2

Ohjelmistotekniikka

False

2

2

Sulautetut

järjestelmät

Taulukko 5.4: Esimerkki StudyLineTranslation-taulun sisällöstä.

 

5.2.3        AssignmentRole ja AssRoleTranslation

 

AssignmentRole-taulu    yhdessä    AssRoleTranslation-taulun    kanssa   muodostaa    luettelon    kaikista    tietokantaan    tallennettavista   opinnäytteiden  rooleista.  Kotka-kannassa ennestään olevia rooleja ei   ollut  mielekästä  käyttää,  sillä  opinnäytteisiin  liittyy usein eri   tyyppisiä   rooleja  kuin  luentokursseihin  (esimerkiksi  tarkastaja,   hyväksyjä).  Taulussa  AssignmentRole  on  kunkin roolin id-numerot ja   taulussa AssRoleTranslation on käännökset roolinimikkeille.

Taulun  AssignmentRole rakenne,  kentät  ja  relaatiot muihin tauluihin on   esitetty alla.

Deleted                                      kertoo, onko rooli poistettu taulusta.

RoleID                                         on roolin id ja samalla taulun avainkenttä.

Taulun   AssRoleTranslation rakenne,   kentät  ja  relaatiot  muihin tauluihin on esitetty alla.

Deleted                kertoo, onko käännös poistettu taulusta.

RoleID                 on roolin id ja samalla osa taulun perusavainta. Kentän relaatio tauluun AssignmentRole liittää käännöksen yksittäiseen   rooliin.

LanguageID             on  käytetyn kielen id ja samalla osa taulun perusavainta.   Relaatio  Language-tauluun  liittää  käännökseen  jonkin   Kotka-kannan kielen.

Name                   sisältää roolin nimen määritellyllä kielellä.

 

Taulukoissa 5.5 ja 5.6 on esimerkki taulujen käytöstä:

 

Deleted

RoleID

False

1

False

2

Taulukko 5.5: Esimerkki AssignmentRole-taulun sisällöstä.

 

Deleted

RoleID

LanguageID

Name

False

1

2

Opiskelija

False

2

2

Ohjaaja

Taulukko 5.6: Esimerkki AssRoleTranslation-taulun sisällöstä.

 

5.2.4        AssignmentPhase ja AssPhaseTranslation

 

AssignmentPhase-taulu    yhdessä   AssPhaseTranslation-taulun   kanssa   muodostaa    luettelon    kaikista    tietokantaan    tallennettavista   opinnäytteiden  vaiheista.  Opinnäytteiden  hallintaan  liittyy  kaksi   erilaista vaihekäsitettä: opinnäytteen vaihe ja työtehtävän vaihe. Eri   sisällöstään  huolimatta  molemmat  vaihekäsitteet tallennetaan samaan  tauluun AssignmentPhase. Taulun rakenne ja kentät on kuvattu alla:  

Deleted                                      kertoo, onko vaihe poistettu taulusta.

RoleID                                         on vaiheen id ja samalla taulun avainkenttä.

PhaseGroup             -kentän avulla voidaan jakaa vaiheita erilaisiin ryhmiin. Näin saadaan esimerkiksi opinnäytteen vaiheet erotettua työtehtävien vaiheista.

Taulun   AssPhaseTranslation rakenne,   kentät  ja  relaatiot  muihin tauluihin on esitetty alla.

Deleted                kertoo, onko käännös poistettu taulusta.

PhaseID                on vaiheen id ja samalla osa taulun perusavainta. Kentän relaatio tauluun AssignmentPhase liittää käännöksen yksittäiseen   vaiheeseen.

LanguageID             on  käytetyn kielen id ja samalla osa taulun perusavainta.   Relaatio  Language-tauluun  liittää  käännökseen  jonkin   Kotka-kannan kielen.

Name                   sisältää roolin nimen määritellyllä kielellä.

 

Taulukoissa 5.7 ja 5.8 on esimerkki taulujen käytöstä:

 

Deleted

PhaseID

PhaseGroup

False

1

1

False

2

1

False

3

2

Taulukko 5.7: Esimerkki AssignmentPhase-taulun sisällöstä.

 

Deleted

PhaseID

LanguageID

Name

False

1

2

Tekeillä

False

2

2

Hyväksytty

False

3

2

Tarkastettavana

Taulukko 5.8: Esimerkki AssPhaseTranslation-taulun sisällöstä.

 

 

 

 

5.2.5        AssEventType ja AssEventTypeTranslation

AssEventType-taulu   yhdessä   AssEventTypeTranslation-taulun   kanssa   muodostaa    luettelon    kaikista    tietokantaan    tallennettavista   opinnäytteiden   tapahtumien   tyypeistä.   Tapahtuman   tyyppi  eroaa   loogiselta merkitykseltään työtehtävän vaiheesta, ja tämän vuoksi nämä  kaksi käsitettä on pidetty erillisissä tauluissa.

Taulun  AssEventType  rakenne  ja  kentät  on kuvattu alla. Tauluun ei   liity relaatioita.

Deleted                                      kertoo, onko tapahtumatyyppi poistettu taulusta.

TypeID                                         on tapahtuman tyypin id ja samalla taulun avainkenttä.

Taulun   AssEventTypeTranslation rakenne,   kentät  ja  relaatiot  muihin tauluihin on esitetty alla.

Deleted                kertoo, onko käännös poistettu taulusta.

TypeID                 on tapahtuman tyypin id ja samalla osa taulun perusavainta. Kentän relaatio tauluun AssEventType liittää käännöksen yksittäiseen   tapahtumatyyppiin.

LanguageID             on  käytetyn kielen id ja samalla osa taulun perusavainta.   Relaatio  Language-tauluun  liittää  käännökseen  jonkin   Kotka-kannan kielen.

Name                   sisältää tapahtuman tyypin nimen määritellyllä kielellä.

 

Taulukoissa 5.9 ja 5.10 on esimerkki taulujen käytöstä:

 

Deleted

TypeID

False

1

False

2

False

3

False

4

Taulukko 5.9: Esimerkki AssEventType-taulun sisällöstä.

 

Deleted

TypeID

LanguageID

Name

False

1

2

Ohjaus

False

2

2

Keskustelu

False

3

2

Arviointi

False

4

2

Oppilaan raportti

Taulukko 5.10: Esimerkki AssEventTypeTranslation-taulun sisällöstä.

 

 

 

 

 

5.2.6        AssignmentDetail ja AssDetailTranslation

 

AssignmentDetail-taulu   yhdessä   AssDetailTranslation-taulun  kanssa   muodostaa  kokoelman kaikista opinnäytteiden tiedoista. On huomattava,   että    tieto    ei   suoraan   liity   yksittäiseen   aiheeseen   tai   opinnäytteeseen,   vaan  liitetään  näihin  erillisten  liitostaulujen   avulla   (katso  luvut  5.3.2  ja  5.3.7).  Näin  voidaan  käyttää   esimerkiksi   samaa   kuvausta   useassa  opinnäytteessä  siten,  että   varsinainen    data   tallennetaan   kantaan   vain   kerran. 

Taulun   AssignmentDetail   rakenne,  kenttien  merkitys  ja  relaatiot  muihin   tauluihin on kuvattu alla:

Deleted                                      kertoo, onko tieto poistettu taulusta.

DetailID                                    on tiedon id ja samalla taulun avainkenttä.

TypeID                 ilmoittaa tiedon tyypin id:n. Relaatio tauluun DescriptionType ilmoittaa, minkä tyyppisestä tiedosta on kyse.

Taulun   AssDetailTranslation rakenne,   kentät  ja  relaatiot  muihin tauluihin on esitetty alla.

Deleted                kertoo, onko käännös poistettu taulusta.

DetailID               on tiedon id ja samalla osa taulun perusavainta. Kentän relaatio tauluun AssignmentDetail liittää käännöksen yksittäiseen tietoon.

LanguageID             on  käytetyn kielen id ja samalla osa taulun perusavainta.   Relaatio  Language-tauluun  liittää  käännökseen  jonkin   Kotka-kannan kielen.

Name                   sisältää tiedon määritellyllä kielellä.

 

Taulukoissa 5.11 ja 5.12 on esimerkki taulujen käytöstä:

 

Deleted

DetailID

TypeID

False

1

1

False

2

8

Taulukko 5.11: Esimerkki AssignmentDetail-taulun sisällöstä.

 

Deleted

DetailID

LanguageID

Name

False

1

2

CD-rekisteri

False

2

2

Ohjelmointi-kurssin harjoi-

tustyön kestosuosikkiaihe on

CD-rekisteri...

Taulukko 5.12: Esimerkki AssDetailTranslation-taulun sisällöstä.

 

 

5.2.7        AssignmentKeyword ja AssKeywordTranslation

AssignmentKeyword-taulu  yhdessä  AssKeywordTranslation-taulun  kanssa   muodostaa   kokoelman   kaikista   opinnäytteiden   avainsanoista.  On   huomattava,  että  kuten opinnäytteiden yleisten tietojen tapauksessa,   niin  myös avainsanoissa tieto ei suoraan liity yksittäiseen aiheeseen   tai  opinnäytteeseen  vaan  liitetään näihin erillisten liitostaulujen   avulla   (katso   luvut  5.3.3  ja 5.3.8).  Näin  sama  avainsana   tallennetaan vain kerran tietokantaan. 

Pitämällä  avainsanat  erillään  AssignmentDetail-taulusta sen sijaan,   että  avainsanat olisivat vain yksi ko. taulun mukainen tiedon tyyppi,   toivotaan   että  haut  nopeutuisivat  ja  avainsanojen  käyttö  olisi   mahdollisimman tehokasta.

Taulun AssignmentKeyword rakenne ja kenttien merkitys on kuvattu alla.   Tauluun ei liity relaatioita.

Deleted                                      kertoo, onko avainsana poistettu taulusta.

KeywordID                                 on avainsanan id ja samalla taulun avainkenttä.

Taulun   AssKeywordTranslation rakenne,   kentät  ja  relaatiot  muihin tauluihin on esitetty alla.

Deleted                kertoo, onko käännös poistettu taulusta.

KeywordID              on avainsanan id ja samalla osa taulun perusavainta. Kentän relaatio tauluun AssignmentKeyword liittää käännöksen yksittäiseen   avainsanaan.

LanguageID             on  käytetyn kielen id ja samalla osa taulun perusavainta.   Relaatio  Language-tauluun  liittää  käännökseen  jonkin   Kotka-kannan kielen.

Name                   sisältää avainsanan määritellyllä kielellä.

 

Taulukoissa 5.13 ja 5.14 on esimerkki taulujen käytöstä:

 

Deleted

KeywordID

False

1

False

2

Taulukko 5.13: Esimerkki AssignmentKeyword-taulun sisällöstä.

 

Deleted

KeywordID

LanguageID

Name

False

1

2

C++

False

2

2

JSP

Taulukko 5.14: Esimerkki AssKeywordTranslation-taulun sisällöstä.

 

 

 

 

 

5.3        Opinnäytteen aihe ja opinnäyte

Tässä   luvussa   esitellään   opinnäytteeseen  läheisemmin  liittyviä   tauluja.    Koska    opinnäytteen    luomisprosessi    alkaa    aiheen   ehdottamisesta,      tarkastellaan      luvussa     5.3.1     taulua   AssignmentOriginal, jonne aihe-ehdotukset ja aiheet tallennetaan.

Suoritettavaksi  otettu  opinnäyte  tallennetaan luvun 5.3.6 tauluun   Assignment. Taulua AssignmentOriginal (luku 5.3.1) ei voida käyttää, sillä joissain   opinnäytteissä  (esimerkiksi  harjoitustyöt) samasta aiheesta voi olla   useampi   erillinen   opiskelija   tai  opiskelijaryhmä  suorittamassa   opinnäytettä,  jolloin on turhaa tallentaa samoja tietoja opinnäytteen   aiheeseen liittyen.

Henkilöt   liitetään  opinnäytteeseen  taulun  AssignmentRelatedPerson   (luku    5.3.9)    avulla.   Kullekin   henkilölle   voidaan   antaa   opinnäytekohtaisesti  oma rooli. Taulu on keskeisessä asemassa monissa   opinnäytteeseen  liittyvissä  yhteyksissä, kuten tapahtuman lisääminen   ja opiskelijan arvostelu.

 

5.3.1        AssignmentOriginal

Tauluun    AssignmentOriginal   tallennetaan   kaikki   opinnäytteiden   aihe-ehdotukset    ja    merkinnät    aihe-ehdotusten   hyväksymisestä   opinnäytteen  aiheeksi. Tauluun tallennetaan vain kiinteästi aiheeseen   liittyviä tietoja.

Opinnäytteeseen  liittyvät ”vapaavalintaisemmat” tiedot tallennetaan   tämän     taulun    ulkopuolelle    tauluihin    AssOriginalRelDetail (luku 5.3.2),   AssOriginalRelKeyword (luku 5.3.3),   AssOriginalPosLine (luku 5.3.4)  ja  AssOriginalPosType (luku 5.3.5).  Nämä tiedot on sijoitettu   taulun   ulkopuolelle   siksi,   että  toisaalta  niiden  määrää  yhtä   aihe-ehdotusta  kohti  ei  ole  kiinnitetty,  ja  toisaalta sovellusta   suunniteltaessa  ei  vielä osata ennustaa kaikkia mahdollisia tietoja,   joita   opinnäytteeseen  halutaan  liittää.  Pitämällä  tiedot  täysin   erillisissä tauluissa on tarkoitus saada aikaan joustavampi tietokanta   uusien tietotyyppien lisäämiseen.

Taulun  AssignmentOriginal  rakenne,  kenttien  merkitys  ja relaatiot   muihin tauluihin on kuvattu alla:

Deleted                                      kertoo, onko aihe(ehdotus) poistettu taulusta.

OriginalID                               on aiheen id ja samalla taulun avainkenttä.

ProposedDate           on aiheen ehdotuspäivämäärä.

ProposedBy             on aiheen ehdottajan id. Relaatio Kotka-kannan tauluun   Person (luku 3.2) yhdistää aiheen ehdottajan tiettyyn Kotka-järjestelmän   käyttäjään.

                       ilmoittaa  aiheen  hyväksymisen päivämäärän. Niin kauan,   kun tässä kentässä on null-arvo, puhutaan aihe-ehdotuksesta.

AcceptedBy             ilmoittaa  aiheen  hyväksyjän  id:n. Relaatio Kotka-kannan   tauluun  Person (luku 3.2) yhdistää aiheen hyväksyjän tiettyyn Kotka-järjestelmän   käyttäjään. Kentässä on arvo null   niin kauan, kun aihe-ehdotusta ei ole hyväksytty.

ValidUntil             ilmoittaa  päivämäärän,  johon  saakka  aihe  säilytetään   kannassa.

Available              ilmaisee,  kuinka  moni  opiskelija tai opiskelijaryhmä voi   ottaa opinnäytteen työn alle.

Taulukossa 5.15 on esimerkki taulun käytöstä:

 

Deleted

OriginalID

ProposedDate

ProposedBy

False

1

15.5.2002

55

 

AcceptedDate

AcceptedBy

ValidUntil

Available

23.5.2002

4

30.9.2002

3

Taulukko 5.15: Esimerkki AssignmentOriginal-taulun sisällöstä.

 

5.3.2        AssOriginalRelDetail

Taulussa   AssOriginalRelDetail   liitetään   opinnäytteen   aiheeseen   käyttäjän  syöttämiä  tietoja  kuten  otsikko-  ja kuvaustiedot. Taulu   näkyy  kuvan  6 ER-kaaviossa MtoM-suhteena taulujen AssignmentOriginal (luku 5.3.1)   ja AssignmentDetail (luku 5.2.6) välillä. Taulun   AssOriginalRelDetail  rakenne,  kenttien  merkitys ja relaatiot muihin   tauluihin on kuvattu alla:

Deleted                                      kertoo, onko relaatio poistettu taulusta.

OriginalID                                on aiheen id ja samalla osa taulun perusavainta. Relaatio tauluun AssignmentOriginal (luku 5.3.1) yhdistää aiheeseen kyseisen tiedon.

DetailID               on  tiedon  id  ja  samalla  osa  taulun perusavainta. Viite tauluun AssignmentDetail (luku 5.2.6) yhdistää tiedon aiheeseen.

 

Taulukossa 5.16 on esimerkki taulun käytöstä:

 

Deleted

OriginalID

DetailID

False

1

1

False

1

2

Taulukko 5.16: Esimerkki AssOriginalRelDetail-taulun sisällöstä.

 

 


5.3.3        AssOriginalRelKeyword

Taulussa   AssOriginalRelKeyword   liitetään   opinnäytteen  aiheeseen   käyttäjän  valitsemia  avainsanoja.  Taulu  näkyy kuvan 6 ER-kaaviossa   MtoM-suhteena taulujen   AssignmentOriginal (luku 5.3.1)  ja  AssignmentKeyword (luku 5.2.7) välillä.  Taulun  rakenne,   kenttien merkitys ja relaatiot muihin tauluihin on kuvattu alla.

Deleted                                      kertoo, onko relaatio poistettu taulusta.

OriginalID                                on aiheen id ja samalla osa taulun perusavainta. Relaatio tauluun AssignmentOriginal (luku 5.3.1) yhdistää aiheeseen kyseisen avainsanan.

KeywordID              on  avainsanan  id  ja  samalla  osa  taulun perusavainta. Viite tauluun AssignmentKeyword (luku 5.2.7) yhdistää avainsanan aiheeseen.

 

Taulukossa 5.17 on esimerkki taulun käytöstä:

 

Deleted

OriginalID

KeywordID

False

1

1

False

1

2

Taulukko 5.17: Esimerkki AssOriginalRelKeyword-taulun sisällöstä.

 

5.3.4        AssOriginalPosLine

Taulussa AssOriginalPosLine liitetään opinnäytteen aiheeseen käyttäjän   valitsemia linjoja. On huomattava, että opinnäytteen aiheeseen voidaan   liittää  useita  linjavaihtoehtoja, mutta varsinaiseen opinnäytteeseen   liittyy enintään yksi linja.

Taulu    näkyy    kuvan    6   ER-kaaviossa   MtoM-suhteena   taulujen   AssignmentOriginal (luku 5.3.1) ja  StudyLine (luku 5.2.2) välillä.  Taulun  rakenne, kenttien   merkitys ja relaatiot muihin tauluihin on kuvattu alla.

Deleted                                      kertoo, onko relaatio poistettu taulusta.

OriginalID                                on aiheen id ja samalla osa taulun perusavainta. Relaatio tauluun AssignmentOriginal (luku 5.3.1) yhdistää aiheeseen kyseisen linjan.

LineID                 on  linjan  id  ja  samalla  osa  taulun perusavainta. Viite tauluun StudyLine (luku 5.2.2) yhdistää linjan aiheeseen.

 

Taulukossa 5.18 on esimerkki taulun käytöstä:

 

Deleted

OriginalID

LineID

False

1

1

False

1

2

Taulukko 5.18: Esimerkki AssOriginalPosLine-taulun sisällöstä.

 

5.3.5        AssOriginalPosType

Taulussa AssOriginalPosType liitetään opinnäytteen aiheeseen käyttäjän   valitsemia   opinnäytetyyppejä.   On   huomattava,  että  opinnäytteen   aiheeseen  voidaan  liittää  useita opinnäytetyyppivaihtoehtoja, mutta   varsinaiseen  opinnäytteeseen  liittyy  ainoastaan  yksi  opinnäytteen   tyyppi.

   Taulu    näkyy    kuvan    6   ER-kaaviossa   MtoM-suhteena   taulujen   AssignmentOriginal (luku 5.3.1) ja   AssignmentType (luku 5.2.1) välillä. Taulun rakenne, kenttien merkitys ja relaatiot   muihin tauluihin on kuvattu alla.

 

 

Deleted                                      kertoo, onko relaatio poistettu taulusta.

OriginalID                                on aiheen id ja samalla osa taulun perusavainta. Relaatio tauluun AssignmentOriginal (luku 5.3.1) yhdistää aiheeseen kyseisen opinnäytetyypin.

TypeID                 on  opinnäytetyypin  id  ja  samalla  osa  taulun perusavainta. Viite tauluun AssignmentType (luku 5.2.1) yhdistää tyypin aiheeseen.

Taulukossa 5.19 on esimerkki taulun käytöstä:

 

Deleted

OriginalID

TypeID

False

1

1

False

1

2

Taulukko 5.19: Esimerkki AssOriginalPosType-taulun sisällöstä.

 

5.3.6        Assignment

Tauluun    Assignment    tallennetaan    kaikki   aiheista   aloitetut   opinnäytteiden   suoritukset.  Tauluun  tallennetaan  vain  kiinteästi   opinnäytteeseen    liittyviä    tietoja    ja    jotkin   luonteeltaan   vapaavalintaisemmista tiedoista tallennetaan tämän taulun ulkopuolelle   tauluihin          AssignmentRelDetail (luku 5.3.7), AssignmentRelKeyword (luku 5.3.8),   AssignmentRelatedPerson (luku 5.3.9)  ja   AssignmentTaskRelation   (luku   5.4.5).

Taulujen  AssignmentRelDetail (luku 5.3.7)  ja  AssignmentRelKeyword (luku 5.3.8) sisältö lienee  lähes   sama   kuin   opinnäytteen   aiheeseen   liittyvien   taulujen   AssOriginalRelDetail (luku 5.3.2) ja   AssOriginalRelKeyword (luku 5.3.3) sisältö.  Oleellista  on se, että hajauttamalla   tieto  kahteen  eri tauluun voidaan opinnäytteeseen liittyviä otsikko-   ja  kuvaustietoja  muuttaa  ilman, että vastaavaan aiheeseen liittyvät   otsikko-  ja  kuvaustiedot  muuttuvat.  Tämä on tärkeää etenkin niissä   tapauksissa, joissa useampi opiskelijaryhmä tekee opinnäytettä samasta   aiheesta.  Siten  alkuperäiseen  aiheeseen  liittyvät  tiedot  voidaan   säilytettään   kannassa,   joten  tietojen  korjailun  ja  muuttamisen   jälkeenkin nämä tiedot ovat saatavilla.

Taulun  Assignment  rakenne,  kenttien  merkitys  ja  relaatiot muihin   tauluihin:

Deleted                                      kertoo, onko opinnäyte poistettu taulusta.

AssignmentID                          on opinnäytteen id ja samalla taulun avainkenttä.

OriginalID             ilmoittaa alkuperäisen aiheen id:n ja viittaa tauluun   AssignmentOriginal (luku 5.3.1).

BeginDate              ilmoittaa opinnäytteen aloituspäivämäärän.

FinishedDate           ilmoittaa opinnäytteen valmistumispäivämäärän. Niin kauan   kun kentässä on null-arvo, on opinnäytteen suoritus kesken.

AssignmentTypeID       ilmoittaa opinnäytteen tyypin id:n. Relaatio tauluun   AssignmentType (luku 5.2.1) yhdistää opinnäytteeseen tietyn opinnäytetyypin.

LineID                 ilmoittaa opinnäytteen linjan id:n. Relaatio tauluun StudyLine (luku 5.2.2) yhdistää opinnäytteen tietylle laitoksen linjalle.

CourseID               ilmoittaa  kurssin  id:n.  Tällä Kotka-kannan tauluun Course (luku 4.2)  viittaavalla  kentällä  saadaan  opinnäytteeseen liitettyä kurssikoodi   esimerkiksi opinnäytteen arvostelemista varten.

PhaseID                ilmoittaa   opinnäytteen   vaiheen  id:n.  Relaatio  tauluun   AssignmentPhase (luku 5.2.4) yhdistää opinnäytteeseen tietyn vaiheen.

WarningTime                             on   muistutusväli,   joka  saa  enintään  kulua  kahden   opinnäytteeseen  liittyvän tapahtuman välillä. Jakson pituus esitetään   vuorokausina.

PublicGroup            ilmoittaa   julkisuusryhmän,   jolla   voidaan   asettaa   opinnäytteen  julkisuusarvo.  Asettamalla  eri julkisuusryhmiä voidaan   osa opinnäytteistä rajata salaisiksi.

          

Taulukossa 5.20 on esimerkki taulun käytöstä:

 

Deleted

AssignmentID

OriginalID

BeginDate

FinishedDate

False

1

1

2.5.2002

Null

False

2

1

5.5.2002

30.5.2002

 

AssignmentTypeID

LineID

CourseID

PhaseID

WarningTime

PublicGroup

3

1

1

1

10

1

1

1

2

4

30

1

Taulukko 5.20: Esimerkki Assignment-taulun sisällöstä.

 


5.3.7        AssignmentRelDetail

Taulussa   AssignmentRelDetail   liitetään  opinnäytteeseen  käyttäjän   syöttämiä  tietoja.  Taulu  näkyy  kuvan  6 ER-kaaviossa MtoM-suhteena   taulujen Assignment (luku 5.3.6) ja   AssignmentDetail (luku 5.2.6) välillä. Taulun AssignmentRelDetail  rakenne, kenttien   merkitys ja relaatiot muihin tauluihin on kuvattu alla.

Deleted                                      kertoo, onko relaatio poistettu taulusta.

AssignmentID                           on aiheen id ja samalla osa taulun perusavainta. Relaatio tauluun Assignment (luku 5.3.1) yhdistää opinnäytteesen kyseisen tiedon.

DetailID               on  tiedon  id  ja  samalla  osa  taulun perusavainta. Viite tauluun AssignmentDetail (luku 5.2.6) yhdistää tiedon opinnäytteeseen.

AllowUpdate            ilmaisee,  saako  DetailID:tä vastaavaa arvoa (käännöstä) muuttaa. Arvona on joko tosi tai epätosi.

 

Taulukossa 5.21 on esimerkki taulun käytöstä:

 

Deleted

AssignmentID

DetailID

AllowUpdate

False

1

1

False

False

1

3

true

Taulukko 5.21: Esimerkki AssignmentRelDetail-taulun sisällöstä.

 

 

5.3.8        AssignmentRelKeyword

Taulussa   AssignmentRelKeyword  liitetään  opinnäytteeseen  käyttäjän   valitsemia avainsanoja. Taulu näkyy kuvan 6 ER-kaaviossa MtoM-suhteena   taulujen Assignment (luku 5.3.6) ja   AssignmentKeyword  (luku 5.2.7) välillä.  Taulun  rakenne,  kenttien  merkitys  ja   relaatiot muihin tauluihin on kuvattu alla.

Deleted                                      kertoo, onko relaatio poistettu taulusta.

AssignmentID                           on aiheen id ja samalla osa taulun perusavainta. Relaatio tauluun Assignment (luku 5.3.6) yhdistää opinnäytteesen kyseisen avainsanan.

KeywordID              on  avainsanan  id  ja  samalla  osa  taulun perusavainta. Viite tauluun AssignmentDetail (luku 5.2.7) yhdistää avainsanan opinnäytteeseen.

Taulukossa 5.22 on esimerkki taulun käytöstä:

 

Deleted

AssignmentID

KeywordID

False

1

1

False

1

2

Taulukko 5.22: Esimerkki AssignmentRelKeyword-taulun sisällöstä.

 

 

5.3.9        AssignmentRelatedPerson

Taulussa     AssignmentRelatedPerson     liitetään     opinnäytteeseen   Kotka-järjestelmän   käyttäjiä.   Henkilöille   liitetään  aina  rooli   kyseisen opinnäytteen suorituksessa. Taulun rakenne, kenttien merkitys   ja relaatiot muihin tauluihin on kuvattu alla.

Deleted                                      kertoo, onko relaatio poistettu taulusta.

RelationID            on relaation id ja samalla taulun avainkenttä.

AssignmentID                           on opinnäytteen id. Viittaa tauluun Assignment (luku 5.3.6), eli   yhdistää relaation tiettyyn opinnäytteeseen.

PersonID               ilmaisee  henkilön  id.  Viittaa tauluun Person (luku 3.2) eli yhdistää   tietyn henkilön relaatioon.

RoleID                 ilmaisee roolin id. Viittaa tauluun AssignmentRole (luku 5.2.3) eli yhdistää   tietyn roolin relaatioon.

 

Taulukossa 5.23 on esimerkki taulun käytöstä:

 

Deleted

RelationID

AssignmentID

PersonID

RoleID

False

1

1

4

2

False

2

1

55

1

True

3

1

676

1

Taulukko 5.23: Esimerkki AssignmentRelatedPerson-taulun sisällöstä.

 

5.4        Opinnäytteen työtehtävät

Luvussa  esitetään  opinnäytteen  työtehtäviin  liittyvät  taulut sekä   niiden  väliset  relaatiot.  Työtehtävät  muodostavat lähes itsenäisen   kokonaisuuden  Koppelo-sovelluksen  taulurakenteessa. Työtehtävät voidaan   luokitella   erilaisiin  ryhmiin  ja  edelleen  työtehtävistä  voidaan   koostaa  mallipohjien  avulla  suurempia  tehtäväkokonaisuuksia. Näitä   mallipohjia  voidaan  käyttää  eräänlaisena pikavalintana työtehtävien   liittämiseksi yksittäiseen opinnäytteeseen.

 

5.4.1        AssTaskCategory ja AssTaskCategoryTranslation

AssTaskCategory-taulu yhdessä AssTaskCategoryTranslation-taulun kanssa   muodostaa    luettelon    kaikista    tietokantaan    tallennettavista   opinnäytteiden  työtehtävien  luokitteluista.  Luokittelut on esitetty   taulussa   AssTaskCategory   ja   niiden   käännökset   ovat  taulussa   AssTaskCategoryTranslation.

Taulun  AssTaskCategory  kentät  ja kenttien merkitys on kuvattu alla.   Tauluun ei liity relaatioita.

Deleted                                      kertoo, onko luokittelu poistettu taulusta.

CategoryID                               on luokittelun id ja samalla taulun avainkenttä.

Taulun   AssTaskCategoryTranslation rakenne,   kentät  ja  relaatiot  muihin tauluihin on esitetty alla.

Deleted                kertoo, onko käännös poistettu taulusta.

CategoryID             on luokittelun id ja samalla osa taulun perusavainta. Kentän relaatio tauluun AssTaskCategory liittää käännöksen yksittäiseen   luokitteluun.

LanguageID             on  käytetyn kielen id ja samalla osa taulun perusavainta.   Relaatio  Language-tauluun  liittää  käännökseen  jonkin   Kotka-kannan kielen.

Name                   sisältää luokittelun määritellyllä kielellä.

 

Taulukoissa 5.24 ja 5.25 on esimerkki taulujen käytöstä:

 

Deleted

CategoryID

False

1

False

2

Taulukko 5.24: Esimerkki AssTaskCategory-taulun sisällöstä.

 

 

Deleted

CategoryID

LanguageID

Name

False

1

2

Suunnittelu

False

2

2

Toteutus

Taulukko 5.25: Esimerkki AssTaskCategoryTranslation-taulun sisällöstä.

 

 

5.4.2        AssignmentTask ja AssTaskTranslation

AssignmentTask-taulu    yhdessä    AssTaskTranslation-taulun    kanssa   muodostaa    luettelon    kaikista    tietokantaan    tallennettavista   opinnäytteiden  työtehtävistä.  Työtehtäviin  liittyvään  luokitteluun  tarvittavat taulut on esitetty luvussa 5.4.1. Taulun AssignmentTask kentät, kenttien merkitys ja relaatiot on kuvattu alla.

Deleted                                      kertoo, onko luokittelu poistettu taulusta.

TaskID                                         on työtehtävän id ja samalla taulun avainkenttä.

CategoryID                                on on luokittelun id. Relaatio tauluun AssTaskCategory (luku 5.4.1) liittää työtehtävän johonkin työtehtävien luokitteluun.

Taulun   AssTaskTranslation rakenne,   kentät  ja  relaatiot  muihin tauluihin on esitetty alla.

Deleted                kertoo, onko käännös poistettu taulusta.

TaskID                 on työtehtävän id ja samalla osa taulun perusavainta. Kentän relaatio tauluun AssignmentTask liittää käännöksen yksittäiseen   työtehtävään.

LanguageID             on  käytetyn kielen id ja samalla osa taulun perusavainta.   Relaatio  Language-tauluun  liittää  käännökseen  jonkin   Kotka-kannan kielen.

Name                   sisältää työtehtävän nimen määritellyllä kielellä.

 

Taulukoissa 5.26 ja 5.27 on esimerkki taulujen käytöstä:

 

Deleted

TaskID

CategoryID

False

1

1

False

2

1

Taulukko 5.26: Esimerkki AssTaskCategory-taulun sisällöstä.

 

 

Deleted

TaskID

LanguageID

Name

False

1

2

Projektisuunnitelma

False

2

2

Sovellussuunnitelma

Taulukko 5.27: Esimerkki AssTaskCategoryTranslation-taulun sisällöstä.

 

 

 

 

5.4.3        AssTaskTemplate ja AssTaskTemplateTranslation

AssTaskTemplate-taulu yhdessä AssTaskTemplateTranslation-taulun kanssa   muodostaa    luettelon    kaikista    tietokantaan    tallennettavista   opinnäytteiden   työtehtävien  mallipohjista.  

Taulun  AssTaskTemplate   kentät ja kenttien merkitys on kuvattu alla. Tauluun ei liity relaatioita.

Deleted                                      kertoo, onko mallipohja poistettu taulusta.

TemplateID                               on mallipohjan id ja samalla taulun avainkenttä.

Taulun   AssTaskTemplateTranslation rakenne,   kentät  ja  relaatiot  muihin tauluihin on esitetty alla.

Deleted                kertoo, onko käännös poistettu taulusta.

TemplateID             on mallipohjan id ja samalla osa taulun perusavainta. Kentän relaatio tauluun AssTaskTemplate liittää käännöksen yksittäiseen   luokitteluun.

LanguageID             on  käytetyn kielen id ja samalla osa taulun perusavainta.   Relaatio  Language-tauluun  liittää  käännökseen  jonkin   Kotka-kannan kielen.

Name                   sisältää mallipohjan nimen määritellyllä kielellä.

 

Taulukoissa  5.28 ja 5.29 on esimerkki taulujen käytöstä:

 

 

Deleted

TemplateID

False

1

False

2

Taulukko 5.28: Esimerkki AssTaskTemplate-taulun sisällöstä.

 

 

 

Deleted

TemplateID

LanguageID

Name

False

1

2

Työprojekti

False

2

2

Ohjelmointi-kurssin

harjoitustyö

Taulukko 5.29: Esimerkki AssTaskTemplateTranslation-taulun sisällöstä.

 

 

5.4.4        AssTaskTemplateRelation

AssTaskTemplateRelation-taulussa  yhdistetään opinnäytteen työtehtäviä   haluttuihin   mallipohjiin.   Taulu   näkyy   kuvan   6   ER-kaaviossa   MtoM-suhteena taulujen   AssTaskTemplate (luku 5.4.3)  ja  AssignmentTask (luku 5.4.2) välillä.  Taulun kentät, kenttien   merkitys ja tauluun liittyvät relaatiot on esitetty alla.

Deleted                                       kertoo, onko relaatio poistettu taulusta.

TemplateID             ilmoittaa mallipohjan id:n ja on samalla osa taulun perusavainta.

TaskID                                          ilmoittaa   työtehtävän   id:n   ja  on  samalla  osa  taulun   perusavainta. Kentän avulla työtehtävä liitetään mallipohjaan.

 

Kentän  TemplateID  relaatio  tauluun AssTaskTemplate (luku 5.4.3) ja kentän TaskID   relaatio  tauluun  AssignmentTask (luku 5.4.2) muodostavat  yksiselitteisen linkin   työtehtävän ja mallipohjan välille. Taulukossa 5.30 on esimerkki taulun käytöstä:

 

Deleted

TemplateID

TaskID

False

1

1

False

1

2

Taulukko 5.30: Esimerkki AssTaskTemplateRelation-taulun sisällöstä.

 

 

 

 

5.4.5        AssignmentTaskRelation

Taulussa  AssignmentTaskRelation  yhdistetään työtehtäviä yksittäisiin   opinnäytteisiin. Samalla jokaiseen opinnäytteen työtehtävään liitetään   vaihe.  Taulu  näkyy  kuvat 6 ER-kaaviossa  MtoM-suhteina taulujen Assignment (luku 5.3.6),   AssignmentTask  (luku 5.4.2) ja  AssignmentPhase (luku 5.2.4) välillä.  Taulun kentät, kenttien   merkitys ja tauluun liittyvät relaatiot on esitetty alla.

Deleted                                      kertoo, onko relaatio poistettu taulusta.

AssignmentID           ilmaisee opinnäytteen id:n ja on samalla osa taulun   perusavainta. Relaatio tauluun Assignment (luku 5.3.6) liittää työtehtävän   opinnäytteeseen.

TaskID                                          ilmaisee   työtehtävän   id:n   ja   on  samalla  osa  taulun   perusavainta. Viittaa tauluun AssignmentTask (luku 5.4.2).

PhaseID                ilmaisee  vaiheen  id:n.  Relaatio  AssignmentPhase   -tauluun (luku 5.2.4) liittää työtehtävään yksittäisen vaiheen.

Taulun   rivien   muodostamisessa   voidaan   käyttää   apuna   taulun   AssTaskTemplateRelation (luku 5.4.4) rivejä. Taulukossa 5.31 on esimerkki taulun käytöstä:

 

Deleted

AssignmentID

TaskID

PhaseID

False

1

1

3

False

1

2

5

Taulukko 5.31: Esimerkki AssTaskTemplate-taulun sisällöstä.

 

5.5        Opinnäytteen tapahtumat ja arvostelu

Opinnäytteeseen     liittyvät    tapahtumat    tallennetaan    tauluun   AssignmentEvent (luku 5.5.1).   Opinnäytteen   arvostelu   voidaan   nähdä   yhtenä   tapahtumana  kyseisessä  taulussa,  mutta tämän lisäksi opiskelijoiden   henkilökohtaiseen arvointiin voidaan käyttää taulua   AssignmentFinished (luku 5.5.3).    Erona    voidaankin    pitää,    että   tauluun   AssignmentEvent annettu arviointi koskee koko opinnäytettä työstänyttä   opiskelijaryhmää.

Opinnäytteisiin  liittyvien  tapahtumien  lukemista seurataan taulussa   UnreadMessages (luku 5.5.2).  Uuden  tapahtuman  lisääminen AssignmentEvent-tauluun   synnyttää  tähän  tauluun  rivin  jokaista  opinnäytteeseen  liitettyä   henkilöä kohden.

 

 


5.5.1        AssignmentEvent

Tauluun   AssignmentEvent tallennetaan   opinnäytteeseen   liittyvät   tapahtumat.   Tapahtumat   voidaan  luokitella  taulussa  AssEventType (luku 5.2.5)  luetelluilla  tapahtumatyypeillä.  Edelleen  kukin  tapahtuma  voidaan   liittää johonkin opinnäytteeseen liitettyyn työtehtävään.

Taulun kentät, kenttien merkitys ja tauluun liittyvät relaatiot on kuvattu alla:

Deleted                                       kertoo, onko tapahtuma poistettu taulusta.

EventID                on tapahtuman id ja samalla taulun perusavain.

AssignmentID           ilmaisee opinnäytteen id:n. Relaatio tauluun Assignment (luku 5.3.6) liittää tapahtuman   opinnäytteeseen.

RegistratorID                        ilmoittaa   työn   kirjaajan  id:n.  Relaatio  tauluun   AssignmentRelatedPerson  (luku 5.3.9)   liittää     kirjaajan    yksikäsitteisesti   opinnäytteeseen  liitettyyn  henkilöön.  Samalla  relaatiolla  saadaan   selville myös mm. kirjaajan todellinen nimi ja rooli opinnäytteessä.

EventDate              sisältää tapahtuman päivämäärän (vapaaehtoinen).

BeginTime              sisältää tapahtuman aloittamisajan (vapaaehtoinen).

End Time               sisältää tapahtuman lopettamisajan (vapaaehtoinen).

Title                  sisältää tapahtuman otsikon.

Memo                   sisältää tapahtuman kuvauksen.

TaskID                 sisältää työtehtävän id:n, joka viittaa tauluun AssignmentTask (luku 5.4.5).   Tällä  tapahtumaan  voidaan  liittää  jokin opinnäytteen työtehtävistä   (vapaaehtoinen).

EventTypeID            ilmoittaa   tapahtuman  tyypin  id:n.  Relaatio  tauluun   AssEventType (luku 5.2.5) antaa tapahtumalle halutun tyypin

Taulukossa 5.32 on esimerkki taulun käytöstä:

 

Deleted

AssignmentID

RegistratorID

EventDate

BeginTime

EndTime

False

1

4

13.5.2002

12:00

14:00

 

Title

Memo

TaskID

EventTypeID

Aiheen

aloittaminen

Sovittiin aiheen

aloittamisesta opiskelijan

kanssa.

1

2

Taulukko 5.32: Esimerkki AssignmentEvent-taulun sisällöstä.

 

5.5.2        UnreadMessages

Jokaisen  tapahtuman lisäämisen yhteydessä opinnäytteeseen liitetyille   henkilöille  asetetaan  merkintä,  että he eivät ole lukeneet kyseistä   tapahtumaa.  Kun käyttäjä käy lukemassa tapahtuman, asetetaan merkintä   poistetuksi.  Näitä  merkintöjä  ylläpidetään taulussa UnreadMessages,   joka    näkyy    kuvan   6   ER-kaaviossa   MtoM-relaationa   taulujen   AssignmentRelatedPerson (luku 5.3.9) ja AssignmentEvent (luku 5.5.1) välillä.

Taulun  rivejä  poistetaan  automaattisesti  aika  ajoin, sillä taulun   sisältö   saattaa   muutoin  paisua  liian  suureksi.  Poisto  tehdään   ensisijaisesti  Deleted-kentän  perusteella. Jos arvona on true, niin   tiedon  saa  poistaa.  Toisaalta  jos ToBeRemoved-päivämäärä on tullut   täyteen, poistetaan kyseinen rivi joka tapauksessa.

Taulun  kentät,  kenttien  merkitys  ja tauluun liittyvät relaatiot on  esitetty alla.

Deleted                kertoo, täytyykö tieto poistaa taulusta. Arvoksi asetetaan   true kun henkilö on käynyt lukemassa tapahtuman.

AssPersonID            ilmaisee  opinnäytteeseen  liittyvän  henkilön id:n ja on   samalla      osa      taulun     perusavainta.     Viittaa     tauluun   AssignmentRelatedPerson (luku 5.3.9), jossa relaatio edelleen yksilöi henkilön.

EventID                ilmaisee   tapahtuman   id:n   ja   on  samalla  osa  taulun   perusavainta. Viittaa tauluun AssignmentEvent (luku 5.5.1).

ToBeRemoved            sisältää   päivämäärän,   jolloin   tiedon  saa  poistaa   riippumatta siitä, onko tapahtuma edelleen lukematta.

Taulukossa 5.33 on esimerkki taulun käytöstä:

 

Deleted

AssPersonID

EventID

ToBeRemoved

False

1

1

14.5.2002

True

2

1

14.5.2002

Taulukko 5.33: Esimerkki UnreadMessages-taulun sisällöstä.

 

5.5.3        AssignmentFinished

Taulussa  AssignmentFinished  säilytetään  opiskelijoiden arvostelujen   tietoja.   Arvostelut   ovat   henkilökohtaisia   siten,   että  kukin   opinnäytteen  ohjaaja voi arvostella jokaisen opinnäytteeseen liitetyn   opiskelijan erikseen.

Taulun  kentät,  kenttien  merkitys  ja tauluun liittyvät relaatiot on esitetty alla:

Deleted                kertoo, onko arvostelu poistettu taulusta.

PersonToBeGradedID     ilmaisee arvosteltavan henkilön id:n ja on samalla osa taulun perusavainta. Viittaa tauluun AssignmentRelatedPerson (luku 5.3.9), jolloin arvosteltava liittyy yksikäsitteisesti haluttuun   opinnäytteeseen.

GradedByID             ilmaisee  arvostelijan  id:n  ja  on  samalla  osa  taulun   perusavainta. Viittaa tauluun AssignmentRelatedPerson (luku 5.3.9),.

GradeID                ilmaisee arvosanan id:n. Viittaa Kotka-kannan tauluun Grade (luku 4.15).

GradeDate                                  sisältää arvostelupäivämäärän.

Credits                sisältää opiskelijan saamat opintoviikot (vapaaehtoinen).

Memo                   sisältää sanallisen arvioinnin (vapaaehtoinen).

 

Taulukossa 5.34 on esimerkki taulun käytöstä:

 

Deleted

PersonToBe

GradedID

GradedByID

GradeID

GradeDate

Credits

Memo

False

2

1

3

18.5.2002

2

 

False

3

1

5

18.5.2002

2

 

Taulukko 5.34: Esimerkki AssignmentFinished-taulun sisällöstä.

 

5.6        Oikeudet

Koppelo-sovellukseen   liittyvät   opinnäytteen  hallintaoikeudet  ja  tiedon   näkyvyysoikeudet     määritellään     käyttäjäryhmä-,     rooli-    ja   henkilökohtaisesti.  Oikeudet  määrätään  taulussa  AssignmentRight (luku 5.6.1) ja   käyttäjien oikeuksien ylläpitämiseen on olemassa taulut   AssUserGroupRelRight (luku 5.6.2),  AssRoleRelRight (luku 5.6.3) ja  AssPersonRelRight (luku 5.6.4).  Näistä   kolme viimeksi mainittua näkyvät kuvan 6 ER-kaaviossa MtoM-suhteina taulujen AssignmentRight (luku 5.6.1) sekä AccessRighLevel (luku 2.2), AssignmentRole (luku 5.2.3), AssignmentType (luku 5.2.1) ja StudyLine (luku 5.2.2) välillä.

Kaikki kolme oikeusrelaatiotaulua ovat välttämättömiä, sillä yksistään   Kotka-järjestelmän  käyttäjäryhmän  perustella tapahtuva luokittelu on   aivan  liian  karkea.  Toisaalta  opinnäytteiden rooleihin pohjautuvaa   oikeusjakoa  ei  voida  käyttää ennen kuin opinnäytteeseen on liitetty   henkilöitä.  Lisäksi,  jotta  olisi  olemassa  joitakin (hyväksyttyjä)   opinnäytteiden  aiheita  (aloitetuista  opinnäytteistä puhumattakaan),   täytyy  rajatulle  ihmisryhmälle antaa oikeudet hyväksyä ja kiinnittää   aiheita  linjoilla  ja  opinnäytetyypeillä  rajattuna.  Näin  kaikkien   kolmen   oikeustaulun  olemassaolo  on  perusteltua.  Niissä  esitetyt   oikeudet   täydentävät   toisiaan,   eikä  niitä  ole  tarkoitettukaan sulkemaan toisiaan pois.

Näiden    kolmen    oikeustaulun   käytöstä   voi   aiheutua   joitain   ristiriitatilanteita,  esimerkiksi  tietylle  henkilölle  on myönnetty   arvosteluoikeus,  mutta hänen käyttäjäryhmälleen vastaavaa oikeutta ei ole  annettu.  Nämä  tilanteet  ratkaistaan siten, että jos henkilö on jonkin oikeustaulun mukaan oikeutettu suorittamaan kyseisen toiminnon, hän saa sen tehdä.

 

 

5.6.1        AssignmentRight

Taulussa   AssignmentRight   luetellaan   kaikki  Koppelo-sovellukseen   liittyvät  oikeudet.  Taulun  kentät,  kenttien  merkitys  ja  tauluun liittyvät relaatiot on esitetty alla.

Deleted                kertoo, onko oikeus poistettu taulusta.

RightID                                       on oikeuden id ja samalla taulun avainkenttä.

Name                   ilmoittaa oikeuden nimen. Koska oikeusosio on tarkoitettu vain   järjestelmän ylläpitäjän käyttöön, ei oikeuksien nimiä ole monikielistetty

Taulukossa 5.35 on esimerkki taulun käytöstä:

 

Deleted

RightID

Name

False

1

Aiheen hyväksyminen

False

2

Aiheen kiinnittäminen

False

3

Opinnäytteen arvostelu

Taulukko 5.35: Esimerkki AssignmentRight-taulun sisällöstä.

 

5.6.2        AssUserGroupRelRight

Taulussa   AssUserGroupRelRight   yhdistetään   oikeuksia   tiettyihin   Kotka-järjestelmän mukaisiin käyttäjäryhmiin. Taulu näkyy kuvan 6 ER-kaaviossa   MtoM-suhteena taulujen   AssignmentRight (luku 5.6.1) ja AccessRightLevel (luku 2.2) välillä.

Taulun  kentät,  kenttien  merkitys  ja tauluun liittyvät relaatiot on esitetty alla.

Deleted                kertoo, onko oikeus poistettu taulusta.

GroupID                                       ilmoittaa käyttäjäryhmän id:n ja on samalla osa taulun perusavainta. Relaatio Kotka-kannan tauluun AccessRightLevel (luku 2.2) liittää oikeuden   käyttäjäryhmään.

RightID                                       ilmoittaa  oikeuden id ja on samalla osa taulun perusavainta.   Viittaa tauluun AssignmenRight (luku 5.6.1).

GrantedBy              ilmoittaa  oikeuden myöntäjän. Viittaa Kotka-kannan tauluun   Person (luku 3.2).

GrantedOn              sisältää oikeuden myöntämispäivämäärän.

 

Taulukossa 5.36 on esimerkki taulun käytöstä:

 

Deleted

GroupID

RightID

GrantedBy

GrantedOn

False

2

1

1

1.5.2002

False

2

2

1

1.5.2002

Taulukko 5.36: Esimerkki AssUserGroupRelRight-taulun sisällöstä.

 

5.6.3        AssRoleRelRight

Taulussa   AssRoleRelRight   yhdistetään   oikeuksia   tiettyihin   Kotka-järjestelmän mukaisiin käyttäjäryhmiin. Taulu näkyy kuvan 6 ER-kaaviossa   MtoM-suhteena taulujen   AssignmentRight (luku 5.6.1) ja AssignmentRole (luku 5.2.3) välillä.

Taulun  kentät,  kenttien  merkitys  ja tauluun liittyvät relaatiot on esitetty alla.

Deleted                kertoo, onko oikeus poistettu taulusta.

RoleID                                          ilmoittaa roolin id:n ja on samalla osa taulun perusavainta. Relaatio tauluun AssignmentRole (luku 5.2.3) liittää oikeuden   opinnäytteen rooliin.

RightID                                       ilmoittaa  oikeuden id ja on samalla osa taulun perusavainta.   Viittaa tauluun AssignmenRight (luku 5.6.1).

GrantedBy              ilmoittaa  oikeuden myöntäjän. Viittaa Kotka-kannan tauluun   Person (luku 3.2).

GrantedOn              sisältää oikeuden myöntämispäivämäärän.

 

Taulukossa 5.37 on esimerkki taulun käytöstä:

 

Deleted

RoleID

RightID

GrantedBy

GrantedOn

False

2

1

1

1.5.2002

False

2

2

1

1.5.2002

Taulukko 5.37: Esimerkki AssRoleRelRight-taulun sisällöstä.

 

5.6.4        AssPersonRelRight

Taulussa    AssPersonRelRight    yhdistetään    oikeuksia   tiettyihin   Kotka-järjestelmän  käyttäjiin. Samalla oikeus liitetään aina tiettyyn   linjaan   ja  opinnäytetyyppiin.  Taulu  näkyy  kuvan  6  ER-kaaviossa   MtoM-suhteena taulujen AssignmentRight (luku 5.6.1),   AssignmentType (luku 5.2.1) ja StudyLine (luku 5.2.2) välillä.

 Taulun  kentät,  kenttien  merkitys  ja tauluun liittyvät relaatiot on esitetty alla.

Deleted                kertoo, onko oikeus poistettu taulusta.

PersonID                                     ilmoittaa henkilön id:n ja on samalla osa taulun perusavainta. Relaatio Kotka-kannan tauluun Person (luku 3.2) liittää oikeuden   yksittäiseen henkilöön.

RightID                                       ilmoittaa  oikeuden id ja on samalla osa taulun perusavainta.   Viittaa tauluun AssignmenRight (luku 5.6.1).

LineID                 ilmoittaa  linjan  id:n ja on samalla osa taulun perusavainta. Viittaa tauluun StudyLine (luku 5.2.2) ja yhdistää oikeuden tiettyyn linjaan.

AssTypeID              ilmoittaa opinnäytteen tyypin id:n ja on samalla osa taulun perusavaita.  Viittaa  tauluun  AssignmentType (luku 5.2.1) ja  yhdistää  oikeuden  tiettyyn opinnäytetyyppiin.

GrantedBy              ilmoittaa  oikeuden myöntäjän. Viittaa Kotka-kannan tauluun   Person (luku 3.2).

GrantedOn              sisältää oikeuden myöntämispäivämäärän.

 

Taulukossa 5.38 on esimerkki taulun käytöstä:

 

Deleted

RoleID

RightID

LineID

AssTypeID

GrantedBy

GrantedOn

False

2

1

1

1

1

1.5.2002

False

2

1

1

2

1

1.5.2002

False

2

1

2

1

1

1.5.2002

False

2

1

2

2

1

1.5.2002

Taulukko 5.38: Esimerkki AssPersonRelRight-taulun sisällöstä.

 

 


6       Maksujen ja palkkojen hallinta

 

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 7. Fees and Invoices –moduulin ER-kaavio.

 

 

6.1        CourseCost

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ä.


6.2        TeacherHourlyFee

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ä.

6.3        PeriodFee

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ä.

 

6.4        PeriodFeePeriod

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ä.

6.5        InvoiceStatus

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ä.


6.6        InvoiceStatusLang

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ä.

6.7        Invoice

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ä.

6.8        Bill

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ä.

6.9        BillStatus

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ä.


6.10    InvoiceItemCourse

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ä.


6.11    InvoiceItemFee

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ä.


7       Kolibri-projektin tekemät muutokset Course Bookkeeping -moduuliin

 

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.

7.1        Kurssikirjanpito-moduulin ER-kaavio

Kurssikirjanpito-moduulin suuntaa-antava ER-kaavio esitetään kuvassa 8 ja sen ominaisuuksiin perehdytään seuraavissa aliluvuissa niiltä osin, mitä Kolibri-työprojektin yhteydessä on tarvinnut muuttaa tai lisätä. Muita tauluja ei tässä yhteydessä esitellä, sillä niiden kuvaukset löytyvät luvusta 4.

Kuva 8. Kolibri-projektin Course Bookkeeping –moduulin ER-kaavio (muuttunut rakenne).

7.2        Visibility

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 140.

 

Deleted

VisibilityID

False

1

False

2

                                           Taulukko 140: Esimerkki Visibility-taulun sisällöstä.

7.3        VisibilityTranslation

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 141.

 

Deleted

VisibilityID

LanguageID

Name

False

1

1

Julkinen

False

1

4

Öffentlich

Taulukko 141: Esimerkki VisibilityTranslation-taulun sisällöstä.

 

 

 

 

7.4        Priority

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 142.

 

Deleted

PriorityID

False

1

False

2

Taulukko 142: Esimerkki Priority-taulun sisällöstä

 

7.5        PriorityTranslation

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 143.

 

Deleted

PriorityID

LanguageID

Name

False

1

1

Matala

False

1

4

Tief

Taulukko 143: Esimerkki PriorityTranslation-taulun sisällöstä.

 

 

 

 

7.6        Note

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 144.

 

Deleted

NoteID

EventID

PersonID

Time

Message

Title

False

12

1234

507

2001-12-04 09:42:03+02

Asia selvä!

Terve.

False

13

1235

783

2002-01-09 21:32:53+02

Take care!

New assignment.

Taulukko 144: Esimerkki Note-taulun sisällöstä.

7.7        Comment

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 145.

 

Deleted

CommentID

Comment

GroupParticipantID

False

21

Moneltako sieltä saa poistua?

31

False

22

Sisältyykö luku 7 k.o. tenttiin?

77

Taulukko 145: Esimerkki Comment-taulun sisällöstä.

7.8        EventGroupRelationship

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 146. Siinä määritellään kahden tapahtumaryhmän suhde, jossa ryhmä 13 sijoitetaan ryhmän 12 alle.

 

Deleted

EventGroupID

SubEventGroupID

False

12

12

False

12

13

False

13

13

Taulukko 146: Esimerkki EventGroupRelationship-taulun sisällöstä.

7.9        EventGroup-tauluun tehdyt muutokset

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 147. Siinä määritellään kaksi tapahtumaryhmää, joista jälkimmäinen ei liity mihinkään kurssi-instanssiin.

 

Deleted

EventGroupID

CourseInstanceID

GroupTypeID

MinParticipants

False

12

13

2

20

False

13

NULL

6

NULL

Name

MaxParticipants

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

www.jkl-sahly.fi

2002-31-12 23:59:59+02

 

 

.

Taulukko 147: Esimerkki EventGroup-taulun sisällöstä

7.10    Event-tauluun tehdyt muutokset

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 148. Siinä määritellään kaksi tapahtumaa, joista jälkimmäinen ei liity mihinkään tapahtumaryhmään.

 

Deleted

EventID

EventGroupID

RealParticipants

BeginTime

False

123

12

37

2001-09-17 08:00:00+02

False

124

NULL

1

2001-12-12 19:30:00+02

 

VisibilityID

EndTime

PriorityID

Name

1

2001-09-17 10:00:00+02

1

NULL

2

2001-12-13 04:00:00+02

1

Ulos Leenan kanssa

Taulukko 148. Esimerkki Event-taulun sisällöstä.

7.11    GroupParticipant-tauluun tehdyt muutokset

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 149.

 

Deleted

PersonID

EventGroupID

GroupParticipantID

RegisteredOn

False

507

12

18

2001-09-17 11:13:47+02

False

508

12

19

2001-09-17 11:18:13+02

 

UserLevel

0

1

Taulukko 149. Esimerkki GroupParticipant-taulun sisällöstä.

 

 

 

 

 

 

7.12    Space-tauluun tehdyt muutokset

Space-taulu (katso luku 4.27) piti laajentaa käsittämään myös tiloja, jotka eivät liity mihinkään (yliopiston) organisaatioon. Tämän takia Space- ja Organisation-taulujen (katso luku 2.9) välinen viite-eheys piti purkaa, s.o. Space-taulun OrganisationID-kenttään sallitaan vastedes NULL-arvot. Kiuru-projekti on myös laajentanut Space-taulun toimintaa (katso luku 8.5.1)

Esimerkki taulun sisällöstä on taulukossa 150. Siinä määritellään kaksi tapahtumaa, joista jälkimmäinen ei kuulu mihinkään yliopiston organisaatioon.

 

Deleted

SpaceID

Code

OrganisationID

SpaceTypeID

False

26

AgB213.1

3

1

False

27

Bar 68

NULL

NULL

Taulukko 150. Esimerkki Space-taulun sisällöstä.

8       Salivaraukset ja resurssipyynnöt

Luvussa esitellään  Kiuru-projektin salivarausmoduuliin luomat taulut sekä muutokset olemassaoleviin kurssikirjanpito- ja henkilötietomoduulien tauluihin. Kotka-projektin taulurakennetta käytettiin hyödyksi tapahtumien ja salien määrittelyn osalta, mutta sitä laajennettiin  salivarausten, saliryhmien ja resurssipyyntöjen osalta. Kiuru-projektin suunnittelema ER-kaavio on esitetty kuvassa 10.

Kiuru-sovellukseen  luodut  taulut käyttävät Kotka-tietokannan henkilö- ja kurssikirjanpitomoduulin tauluja. Salityypit ja saliryhmät voidaan nähdä laajennuksena kurssikirjanpitomoduuliin. Yhteydet henkilöiden (luku 3) ja organisaatioiden hallintaan (luku 2) tarvitaan        henkilöiden    ja organisaatioiden liittämiseksi   salivarauksiin sekä saliryhmien oikeuksien määräämiseen. Organisaatioiden  hallinnan tauluja (luku 2) tarvitaan varaaja- ja maksajaorganisaation liittämiseen varaukseen.

Kurssikirjanpitomoduulin (luku 4) ja sieltä erityisesti kalenterin (luku 7)  tauluja tarvitaan  liittämään  salivaraus haluttuun tapahtumaan (esim. kurssien opetustapahtumat, laitoksen kokoukset, tenttipäivät). 

8.1        Salivarausmoduulin ER-kaavio

Salivarausmoduulin taulut ja niiden yhteydet olemassaoleviin Kotka-järjestelmän tauluihin on esitetty yleisellä tasolla kommentoiden kuvassa 10. Kaaviossa ei ole tilansäästösyistä esitetty kaikkia kenttiä (esim. Deleted-kentät ja ID-numerot), vaan taulujen täsmälliset kuvaukset ovat luvuissa 8.2-8.5. Kuvassa 9 on esitetty lyhennysmerkintä järjestelmän käyttämille parametritauluille.

Kiuru-projekti luopui Kotka-järjestelmän jatkokehittäjien suositteleman käytännön mukaan aiempien projektien käyttämistä Translation-tauluista. Näin tietokannan rakennetta  ja hakuja saadaan yksinkertaistettua huomattavasti. Monikielistäminen hoidetaan ohjelmallisesti User-pavun T-metodilla. Tauluissa olevat merkkijonoarvoiset kentät annetaan järjestelmän oletuskielellä.

 

 

 

Kuva 9. Lyhennysmerkintä parametritauluille.


 

Kuva 10. Kiuru-projektin määrittelemän salivarausosuuden ER-kaavio.


8.2        Salit ja saliryhmät

Kiuru-projektin luomat saleihin ja saliryhmiin liittyvät taulut voidaan ymmärtää laajennuksena kurssikirjanpitomoduuliin tai ylläpitäjän toimintoihin. Saliryhmien ensisijainen tarkoitus on kuitenkin määritellä salien varausoikeudet ja kurssikirjanpitomoduuli toimii myös ilman saliryhmiä. Siksi uudet taulut on merkitty osaksi salivarausmoduulia

 

8.2.1        SpaceType

Taulussa SpaceType on kuvattu järjestelmän tuntemat salityypit. Taulu on tarkoitettu lähinnä hakujen ja raporttien luonnin helpottamiseen (esim. kurssien suunnittelusta vastaava henkilö pystyy helposti hakemaan kaikki mikroluokat). Tauluun on määritelty myös erityinen salityyppi "oheisvarattava", jolloin "sali" on oikeastaan varattava resurssi, esim. videoprojektori. Tällöin ei tarvitse määritellä erikseen salivarauksia ja muiden resurssien varauksia.

Taulun rakenne ja kenttien merkitys on kuvattu alla. Tauluun ei liity suhteita.

Deleted                kertoo, onko salityyppi poistettu taulusta.

SpaceTypeID            on salityypin tunniste ja taulun avainkenttä.

Name                   sisältää salityypin nimen järjestelmän oletuskielellä.

 

Taulukossa 8.1 on esimerkki taulun käytöstä.

 

Deleted

SpaceTypeID

Name

False

1

Opetustila

False

2

Mikroluokka

False

3

Kokoustila

Taulukko 8.1: Esimerkki SpaceType-taulun sisällöstä.

 

8.2.2        SpaceGroupType

Taulussa SpaceGroupType on kuvattu järjestelmän tuntemat saliryhmätyypit. Taulun tarkoitus on ensinnäkin helpottaa hakujen ja raporttien luontia (esim. hae kaikki Agoran salit tai näytä lista mielisaleista). Toisaalta se erottelee vahvistusoikeuksien määrittämiseen käytetyt hallinnolliset saliryhmät muista ryhmistä. Jatkokehitystä ajatellen saliryhmillä voi esim. ilmoittaa oheisvarattavien toimituspaikat, eli salit, joihin tiettyä resurssia voi varata.

Taulun rakenne ja kenttien merkitys on kuvattu alla. Tauluun ei liity suhteita.

Deleted                kertoo, onko saliryhmätyyppi poistettu taulusta.

SpaceGroupTypeID                 on saliryhmätyypin tunniste ja taulun avainkenttä.

Name                                               sisältää saliryhmätyypin nimen järjestelmän oletuskielellä.

 

 

 

Taulukossa 8.2 on esimerkki taulun käytöstä.

 

Deleted

SpaceGroupTypeID

Name

False

1

Rakennus

False

2

Alue

False

3

Hallinnollinen saliryhmä

Taulukko 8.2: Esimerkki SpaceGroupType-taulun sisällöstä.

 

8.2.3        SpaceGroup

Taulu sisältää kaikki järjestelmän tuntemat saliryhmät. Suurin osa saliryhmien toiminnasta ilmenee saliryhmätauluun liittyvissä suhteissa, jolloin varsinaiseen tauluun jää vain saliryhmän nimi ja kuvaus.

Taulun rakenne, kenttien merkitys ja suhteet on kuvattu alla.

Deleted                kertoo, onko saliryhmä poistettu taulusta.

SpaceGroupID                           on saliryhmän tunniste ja taulun avainkenttä.

Name                                               sisältää saliryhmän nimen järjestelmän oletuskielellä.

Description                             sisältää saliryhmän vapaamuotoisen kuvauksen.

SpaceGroupTypeID                 on saliryhmätyypin tunniste. Suhde SpaceGroupType-tauluun (luku 8.2.2) antaa saliryhmälle halutun tyypin.

AccessRightLevelID            on käyttöoikeustason tunniste. Suhde AccessRightLevel-tauluuun (luku 2.2) määrittelee pienimmän oikeustason (esim. luennoitsija), jolla saliryhmään saa tehdä varauspyyntöjä.

 

Taulukossa 8.3 on esimerkki taulun käytöstä.

 

Deleted

SpaceGroupID

Name

Description

SpaceGroupTypeID

AccessRightLevelID

False

1

Agora

-

1

2

False

2

Mattilanniemi

-

2

2

Taulukko 8.3: Esimerkki SpaceGroup-taulun sisällöstä.

 

8.2.4        SpaceGroupSpace

Taulu yhdistää salit haluttuun saliryhmään. Rakenne mahdollistaa saman salin kuulumisen useampaan saliryhmään. Esimerkiksi MaD-alkuiset salit kuuluvat toisaalta MaD-nimiseen rakennukseen, toisaalta Mattilanniemen alueeseen. Lisäksi MaD-rakennuksen salit kuuluvat tiettyyn hallinnolliseen tilaryhmään, jolla määritetään salien vahvistusoikeudet. Taulu näkyy kuvassa 10 MtoM-suhteena taulujen  SpaceGroup (luku 8.2.3) ja Space (luku 4.27) välillä.

Taulun rakenne, kenttien merkitys ja suhteet on kuvattu seuraavalla sivulla.

Deleted                kertoo, onko suhde poistettu taulusta.

SpaceID                                       on salin tunniste ja samalla osa taulun perusavainta. Suhde Space-tauluun (luku 4.27) yhdistää salin saliryhmään.

SpaceGroupID                           on saliryhmän tunniste ja samalla osa taulun perusavainta. Suhde SpaceGroup-tauluun (luku 8.2.3) yhdistää saliryhmän saliin.

 

Taulukossa 8.4 olevassa esimerkissä määritelläään salit 1 ja 2 kuulumaan saliryhmään 1.

 

Deleted

SpaceID

SpaceGroupID

False

1

1

False

2

1

Taulukko 8.4 Esimerkki SpaceGroupSpace-taulun sisällöstä.

 

8.2.5        SpaceGroupRelationship

Tämän taulun avulla kuvataan saliryhmien keskinäiset suhteet. Jokaisen saliryhmän kohdalta luetellaan kaikki sen aliryhmät. Lisäksi jokainen sali on itsensä aliryhmä. Loogisesti rakenne on samankaltainen organisaatioiden suhteiden määrityksen kanssa (luku 2.12). Puumainen rakenne mahdollistaa esim. Alueet-Rakennukset-Salit -tyylisen hierarkian. Salien vahvistusoikeudet periytyvät hierarkiassa niin, että tietyn saliryhmän vahvistajalla on vahvistusoikeus myös oman saliryhmänsä aliryhmiin. Taulu näkyy kuvassa 10 MtoM-suhteena SpaceGroup-taulusta (luku 8.2.3) itseensä.

Taulun rakenne, kenttien merkitys ja suhteet on kuvattu alla.

Deleted                kertoo, onko suhde poistettu taulusta.

SpaceGroupID                           kertoo saliryhmän, jonka tiedoista on kyse. Suhde SpaceGroup-tauluun (luku 8.2.3).

SubSpaceGroupID                   määrittelee aliryhmän SpaceGroupID:n määrittelemälle saliryhmälle. Suhde SpaceGroup-tauluun (luku 8.2.3).

 

Taulukossa 8.5 olevassa esimerkissä määritellään saliryhmät 1 ja 2 kuulumaan saliryhmän 1 alle. Saliryhmä 2 kuuluu myös saliryhmään 3.

 

Deleted

SpaceTypeID

SubSpaceGroupID

False

1

1

False

1

2

False

3

2

Taulukko 8.5: Esimerkki SpaceGroupRelationShip-taulun sisällöstä.

 

8.2.6        SpaceParameterType

Tauluun SpaceParameterType määritellään kaikki lisätietotyypit, joita voidaan määritellä yksittäisille saleille. Esimerkkinä määritellään salin tunnistenumero toisessa salinvarausjärjestelmässä. Alkuperäisen Kotka-järjestelmän parametritauluista poiketen tauluun on tallennettu suoraan parametrityypin nimi ilman erillistä Translation-taulua.

Taulun rakenne ja kenttien merkitys on kuvattu alla. Tauluun ei liity suhteita.

Deleted                kertoo, onko tyyppi poistettu taulusta.

SpaceParameterTypeID       on parametrityypin tunniste ja taulun avainkenttä.

Name                                               on parametrityypin nimi.

 

Taulukossa 8.6 on esimerkki taulun käytöstä.

 

Deleted

SpaceParameterTypeID

Name

False

1

TimmiID

Taulukko 8.6: Esimerkki SpaceParameterType-taulun sisällöstä.

 

8.2.7        SpaceParameter

Tauluun SpaceParameter on tallennettu salin dynaamiset parametrit, joiden tyyppi on määritelty SpaceParameterType-taulussa (luku 8.2.6). Parametrit ovat merkkijonomuotoisia.

Taulun rakenne, kenttien merkitys ja suhteet on kuvattu alla.

 

Deleted                kertoo, onko parametri poistettu.

SpaceID                                       on salin tunniste ja osa taulun perusavainta. Suhde Space-tauluun (luku 4.27) määrittelee salin, jonka parametrista on kyse.

SpaceParameterTypeID       on parametrityypin tunniste ja osa taulun perusavainta. Suhde SpaceParameterType-tauluun (luku 8.2.6) kertoo parametrin tyypin.

ParameterValue                      sisältää parametrin arvon.

 

 

Taulukossa 8.7 on esimerkki taulun käytöstä.

 

Deleted

SpaceID

SpaceTypeID

ParameterValue

False

1

1

2341

Taulukko 8.7: Esimerkki SpaceParameter-taulun sisällöstä.

 

 

8.2.8        SpaceGroupPerson

Taulussa määritetään henkilöiden vahvistusoikeudet saliryhmittäin. Henkilö voi olla joko varaustasoltaan "tavallinen" vahvistaja tai päävahvistaja, jolloin hänellä on oikeus muokata tavallisten vahvistajien vahvistamia varauksia. Saliryhmää saa muokata (lisätä tai poistaa henkilöitä tai saleja) ylläpitäjän lisäksi vain henkilö, jolla on muokkausoikeus tiettyyn saliryhmään. Lisäksi vahvistajien varaustasojen muokkaaminen edellyttää päävahvistajan oikeuksia. Taulu näkyy kuvassa 10 MtoM-suhteena taulujen  SpaceGroup (luku 8.2.3) ja Person (luku 3.2) välillä.

Taulun rakenne, kenttien merkitys ja suhteet on kuvattu alla.

Deleted                kertoo, onko suhde poistettu taulusta.

PersonID                                     on henkilön tunniste ja samalla osa taulun perusavainta. Suhde Person-tauluun (luku 3.2) yhdistää henkilön saliryhmään.

SpaceGroupID                           on saliryhmän tunniste ja samalla osa taulun perusavainta. Suhde SpaceGroup-tauluun (luku 8.2.3) yhdistää saliryhmän henkilöön.

AccessLevel                             määrittelee henkilön varaustason (1=tavallinen vahvistaja, 2=päävahvistaja).

ModifyRight                             kertoo, onko henkilöllä oikeus saliryhmän muokkaamiseen (1=kyllä).

 

Taulukossa 8.8 kuvatussa esimerkissä henkilö 1 on saliryhmän 1 päävahvistaja ja hänellä on muokkausoikeus. Henkilö 2 on myös saliryhmän 1 vahvistaja, mutta hänellä ei ole muokkausoikeutta.

 

Deleted

PersonID

SpaceGroupID

AccessLevel

ModifyRight

False

1

1

2

1

False

2

1

1

0

Taulukko 8.8: Esimerkki SpaceGroupPerson-taulun sisällöstä.

 

 

8.3        Salivaraukset

Varaustaulut mahdollistavat varauspyynnöt ja vahvistukset tapahtumiin liittyviin saleihin. Varaus voidaan hoitaa Korppi-järjestelmän sisällä tai jonkin ulkopuolisen varausjärjestelmän avulla. Ulkopuolisten varausjärjestelmien mahdollisesti tarvitsemat lisätiedot merkitään valinnaisina parametreina.

 

 

8.3.1        RequestState

Taulussa RequestState on kuvattu varaus- tai resurssipyynnön tila. Mahdollisia tiloja ovat esimerkiksi Käsittelyssä, Hyväksytty tai Peruttu.

Taulun rakenne ja kenttien merkitys on kuvattu alla. Tauluun ei liity suhteita.

Deleted                kertoo, onko tilanne poistettu taulusta.

RequestStateID                      on tilanteen tunniste ja taulun perusavain.

Name                                               sisältää tilanteen nimen.

 

Taulukossa 8.9 on esimerkki taulun käytöstä.

 

Deleted

RequestStateID

Name

False

1

Pyyntö

False

2

Käsittelyssä

False

3

Varaus

Taulukko 8.9: Esimerkki RequestState-taulun sisällöstä.

 

8.3.2        Reservation

Reservation-taulu määrittelee yksittäiset salivaraukset ja muut resurssien varaukset. Taulu on oleellisesti laajennus Event- (luku 4.25) ja EventSpace-taulujen (luku 4.28) toiminnallisuudelle, mutta yhteensopivuuden säilyttämiseksi olemassaolevan koodin kanssa varaustiedot on määritelty omaan tauluunsa. Lisäksi taulu mahdollistaa liitännät ulkopuolisiin varausjärjestelmiin. Synkronointi EventSpace-taulun kanssa on kuvattu luvussa 11.1.

Taulun rakenne, kenttien merkitys ja suhteet on kuvattu alla.

Deleted                kertoo, onko varaus poistettu taulusta.

ReservationID                        on varauksen tunniste ja taulun perusavain. Periaatteessa myös SpaceID ja EventID muodostavat avaimen taululle, mutta hakujen helpottamiseksi tauluun on lisätty erillinen avainkenttä.

SpaceID                                       on salin tunniste. Suhde Space-tauluun (luku 4.27) määrittelee varatun salin. Yhteys tarvitaan, koska tapahtuma voi olla varattu useampaan saliin kerralla.

EventID                                       on tapahtuman tunniste. Suhde Event-tauluun (luku 4.25) määrittelee tapahtuman, jota varten varaus on tehty. Myös aikatiedot saadaan Event-taulun kautta.

ResOrganisationID              on organisaation tunniste. Suhde Organisation-tauluun (luku 2.9) määrittelee tapahtuman varaajaorganisaation (yleensä jokin laitos tai tiedekunta).

PayOrganisationID              on organisaation tunniste. Suhde Organisation-tauluun (luku 2.9) määrittelee tapahtuman maksajaorganisaation, tarvittaessa opintolinjan tai projektin tarkkuudella.

RequestStateID                      Suhde RequestState-tauluun (luku 8.3.1) määrittelee varauspyynnön tilan.

UpdateTime                                kertoo viimeisimmän päivämäärän ja ajan, kun varauksen tietoja on muutettu.

Description                             sisältää lisätietoja varauksesta. Esim. vahvistaja voi merkitä tähän syyn varauspyynnön peruuttamiseen.

Inconsistent                           on järjestelmän sisäisessä käytössä oleva kenttä, jonka arvo on 1, jos varaustiedot ovat epäyhtenäiset EventSpace-taulun (luku 4.28) tietoihin verrattuna. Ylläpitäjä, varauksen tekijä tai varauksen vahvistaja voi korjata varauksen.

Taulukossa 8.10 on esimerkki taulun käytöstä.

 

Deleted

Reserva-tionID

Space-ID

Event-ID

ResOrgani-sationID

PayOrgani-sationID

Request-

StateID

UpdateTime

Descrip-tion

Incon-sistent

False

1

1

1

1

2

1

2002-01-08 20:00

-

0

False

2

1

3

1

2

2

2002-01-08 20:01

-

0

Taulukko 8.10: Esimerkki Reservation-taulun sisällöstä.

 

 

8.3.3        ReservationParameterType

Tauluun ReservationParameterType määritellään kaikki lisätietotyypit, joita voidaan määritellä yksittäisille varauksille. Esimerkkinä varauksen tunnistenumero toisessa salinvarausjärjestelmässä. Alkuperäisen Kotka-järjestelmän parametritauluista poiketen tauluun on tallennettu suoraan parametrityypin nimi ilman erillistä Translation-taulua.

Taulun rakenne ja kenttien merkitys on kuvattu alla. Tauluun ei liity suhteita.

 

Deleted                kertoo, onko tyyppi poistettu taulusta.

ReservationParameterTypeID on parametrityypin tunniste ja taulun avainkenttä.

Name                                               on parametrityypin nimi.

 

Taulukossa 8.11 on esimerkki taulun käytöstä.

 

Deleted

ReservationParameterTypeID

Name

False

1

TimmiID

Taulukko 8.11: Esimerkki ReservationParameterType-taulun sisällöstä.

 

8.3.4        ReservationParameter

Tauluun ReservationParameter on tallennettu varauksen dynaamiset parametrit, joiden tyyppi on määritelty ReservationParameterType-taulussa (luku 8.3.3). Parametrit ovat merkkijonomuotoisia.

Taulun rakenne, kenttien merkitys ja suhteet on kuvattu alla.

Deleted                kertoo, onko parametri poistettu.

ReservationID                        on varauksen tunniste ja osa taulun perusavainta. Suhde Reservation-tauluun (luku 0) määrittelee salin, jonka parametrista on kyse.

ReservationParameterTypeID on parametrityypin tunniste ja osa taulun perusavainta. Suhde ReservationParameterType-tauluun (luku 8.3.3) kertoo parametrin tyypin.

ParameterValue                      sisältää parametrin arvon.

 

 

Taulukossa 8.12 on esimerkki taulun käytöstä.

 

Deleted

ReservationID

ReservationParameterTypeID

ParameterValue

False

1

1

13245

Taulukko 8.12: Esimerkki ReservationParameter-taulun sisällöstä.

 

8.3.5        ReservationRole

Taulu määrittelee roolit, joita varaukseen liittyvillä henkilöillä voi olla. Erilaisia rooleja ovat esimerkiksi varauspyynnön tekijä, varauksen vahvistaja ja varaajan yhteyshenkilö (joita voi periaatteessa olla useitakin).

Taulun rakenne ja kenttien merkitys on kuvattu alla. Tauluun ei liity suhteita.

Deleted                kertoo, onko rooli poistettu taulusta.

ReservationRoleID              on roolin tunniste ja taulun avainkenttä.

Name                                               sisältää roolin nimen.

 

Taulukossa 8.13 on esimerkki taulun käytöstä.

 

Deleted

ReservationRoleID

Name

False

1

Varauspyynnön tekijä

False

2

Varaajan yhteyshenkilö

Taulukko 8.13: Esimerkki ReservationRole-taulun sisällöstä.

8.3.6        ReservationPerson

ReservationPerson-taulu yhdistää henkilöt salivarauksiin. Henkilöt voivat liittyä salivaraukseen erilaisissa rooleissa, mutta pakollisia rooleja hyväksytyssä varauksessa ovat varauspyynnön tekijä, varauksen vahvistaja ja varaajan yhteyshenkilö. Henkilöt voivat olla myös samoja eri rooleissa ja yhteyshenkilöitä voi olla useampiakin. Kurssien tapahtumia varatessa varaajan yhteyshenkilö on usein sama kuin kurssin pitäjä. Taulu näkyy kuvassa 10 MtoMtoM-suhteena taulujen  Person (luku 3.2), Reservation (luku 0) ja ReservationRole (luku 8.3.5) välillä.

Taulun rakenne, kenttien merkitys ja suhteet on kuvattu alla.

Deleted                kertoo, onko suhde poistettu.

PersonID                                     on henkilön tunniste ja samalla osa taulun perusavainta. Suhde Person-tauluun (luku 3.2) yhdistää henkilön varaukseen.

ReservationID                        on varauksen tunniste ja samalla osa taulun perusavainta. Suhde Reservation-tauluun (luku 0) yhdistää varauksen henkilöön.

ReservationRoleID              on varausroolin tunniste ja samalla osa taulun perusavainta. Suhde ReservationRole-tauluun (luku 8.3.5) määrittelee henkilölle roolin, jossa hän toimii tietyn varauksen yhteydessä.

Taulukossa 8.14 olevassa esimerkissä henkilöt 1 ja 2 ovat eri rooleissa varauksessa 1. Henkilö 2 on lisäksi roolissa 1 varauksessa 2.

 

Deleted

PersonID

ReservationID

ReservationRoleID

False

1

1

1

False

2

1

2

False

2

2

1

Taulukko 8.14: Esimerkki ReservationPerson-taulun sisällöstä.

8.4        Resurssipyynnöt

Resurssipyyntötaulut ovat laajennus kurssikirjanpitomoduulin Resource- ja SpaceResource-taulujen toimintaan. Resurssipyynnöt voi määritellä tapahtumaryhmäkohtaisesti. Resurssipyyntö voi olla esimerkiksi "Ohjelmointikurssin 1. ohjausryhmä tarvitsee mikroluokan vähintään 20 henkilölle”. Kiuru-projektin lopettaessa resurssipyyntötaulut on luotu tietokantaan, mutta järjestelmä ei käytä niitä. Taulut on tarkoitettu järjestelmän jatkokehityksen käyttöön.

 

8.4.1        ResourceRequest

Taulussa ResourceRequest on kuvattu yksittäisen resurssipyynnön tiedot. Resurssipyyntö on kokonaisuus, joka liittyy yleensä yksittäisen tapahtumaryhmän tulevien tapahtumien vaatimiin resursseihin. Resurssipyyntö koostuu viittauksista resursseihin sekä rajoitteesta määrätylle resurssille.

Taulun rakenne, kenttien merkitys ja suhteet on kuvattu seuraavalla sivulla.

Deleted                kertoo, onko pyyntö poistettu.

ResourceRequestID              on resurssipyynnön tunniste ja taulun perusavain.

Description                             sisältää vapaamuotoisen kuvauksen resurssipyynnöstä.

ContactPersonID                   on henkilön tunniste. Suhde Person-tauluun (luku 3.2) määrittelee resurssipyynnön tekijän (yleensä kurssin luennoitsija, jota ei tosin ole välttämättä määritelty kursseja suunniteltaessa). Resurssipyynnöt välittyvät tapahtumaryhmästä vastaavan organisaation sihteerille (esim. amanuenssi).

 

Taulukossa 8.15 on esimerkki taulun käytöstä.

 

Deleted

ResourceRequestID

Description

ContactPersonID

False

1

Luentosali tietokantakurssille.

53

False

2

Tilat ja laitteet uuteen demoryhmään.

80

Taulukko 8.15: Esimerkki ResourceRequest-taulun sisällöstä.

 

8.4.2        ResourceRequestRecord

Taulu yhdistää yksittäiset resurssipyyntötietueet koottuun resurssipyyntöön. Lisäksi jokaisen tietueen kohdalla on rajoite, jolla resurssipyyntöä tarkennetaan. Taulu näkyy kuvassa 10 MtoMtoM-suhteena taulujen  ResourceRequest (luku 8.4.1), Resource (luku 4.29) ja SpaceType (luku 8.2.1) -taulujen välillä.

Taulun rakenne, kenttien merkitys ja suhteet on kuvattu alla.

Deleted                kertoo, onko pyyntötietue poistettu taulusta.

ResourceRequestID              on resurssipyynnön tunniste ja osa taulun perusavainta. Suhde ResourceRequest-tauluun (luku 8.4.1) määrittää resurssipyynnön, johon tietueet kuuluvat.

SpaceTypeID                             on salityypin tunniste ja osa taulun perusavainta. Suhde SpaceType-tauluun (luku 8.2.1) määrittää salityypin, jota halutaan varata.

ResourceID                                on resurssityypin tunniste ja osa taulun perusavainta. Suhde Resource-tauluun (luku 4.29) määrittää resurssityypin, joka vaaditaan resurssipyyntöön tietyssä salityypisssä.

Value                                            sisältää rajoitteen resurssipyyntötietueelle. Kenttä on osittain samaa muotoa kuin SpaceResource-taulun (luku 4.31) Value-kenttä, mutta voi sisältää lisäehtoja (esim. ylä- tai alaraja, loogiset operaatiot). Kentän tarkempi muoto jätetään jatkokehityksen päätettäväksi.

 

Taulukon 8.16 esimerkissä pyydetään resurssipyyntöä 1 varten resurssia 1. (luentosalin paikkamäärä) yli 100. Resurssipyynnössä 2 mikroluokan paikkamäärä oltava vähintään 20 ja (oletetaan, että resurssi 2 on tietokone) ja vähintään 10 konetta.

 

Deleted

ResourceRequestID

SpaceTypeID

ResourceID

Value

False

1

1

1

>100

False

2

2

1

>=20

False

2

2

2

>=10

Taulukko 8.16: Esimerkki ResourceRequestRecord-taulun sisällöstä.

 

8.4.3        ResourceRequestEventGroup

Taulu yhdistää tapahtumaryhmät resurssipyyntöihin. Rakenne mahdollistaa resurssipyyntöjen jakamisen useamman eri tapahtumaryhmän kesken ilman muutoksia EventGroup-tauluun. Taulu näkyy kuvassa 10 MtoM-suhteena taulujen ResourceRequest (luku 8.4.1) ja EventGroup (luku 4.23) välillä.

Taulun rakenne, kenttien merkitys ja suhteet on kuvattu alla.

Deleted                kertoo, onko suhde poistettu taulusta.

ResourceRequestID              on resurssipyynnön tunniste ja samalla osa taulun perusavainta. Suhde ResourceRequest-tauluun (luku 8.4.1) yhdistää resurssipyynnön tapahtumaryhmään.

EventGroupID                           on tapahtumaryhmän tunniste ja samalla osa taulun perusavainta. Suhde EventGroup-tauluun (luku 4.23) yhdistää tapahtumaryhmän resurssipyyntöön.

 

Taulukossa 8.17 on esimerkki taulun käytöstä.

 

Deleted

ResourceRequestID

EventGroupID

False

1

430

Taulukko 8.17: Esimerkki ResourceRequestEventGroup-taulun sisällöstä.

 

8.5        Kiuru-projektin tekemät muutokset olemassaoleviin tauluihin

Kiuru-projekti pyrki toteuttamaan varausmoduulin mahdollisimman vähillä muutoksilla olemassaoleviin tauluihin. Merkittävin muutos oli tyyppitiedon lisääminen Space-tauluun (katso luku 4.27). Translation-taulujen käytöstä luopumisen takia lisättiin uusia merkkijonokenttiä mm. parametritauluihin. Yhteensopivuuden säilyttämisen vuoksi myös aiemmat Translation-taulut ovat toistaiseksi tietokannassa.

 

8.5.1        Space-tauluun tehdyt muutokset

Tauluun (ks. luvut 4.27 ja 7.12) lisättiin uusi kenttä SpaceTypeID. Lisäksi taulun merkitystä laajennettiin niin, että varsinaisen salin tai tilan lisäksi Space-tietue voi tarkoittaa oheisvarattavaa resurssia. Kentän kuvaus alla.

 

SpaceTypeID           määrittelee salin tyypin, esimerkiksi mikroluokka. Jos tyyppi ei ole tiedossa, se voi olla NULL.

 

Samalla tauluun lisättiin seuraava suhde:

·        Suhde SpaceType-tauluun (luku 8.2.1) määrittelee salin tyypin.

 

 

Esimerkki tilataulun käytöstä on taulukossa 8.18.

 

Deleted

SpaceID

Code

OrganisationID

SpaceTypeID

False

12

Ag Auditorio 1

1

1

False

354

Kannettava mikro 3

1

6

Taulukko 8.18.: Esimerkki Space-taulun sisällöstä.

 

8.5.2        Resource-tauluun tehdyt muutokset

Tauluun (ks. luku 4.29) lisättiin nimikenttä korvaamaan aiemmin erillisessä ResourceTranslation-taulussa olleita tietoja. Kentän kuvaus alla.

Name                  sisältää resurssin tyypin järjestelmän oletuskielellä.

 

 

Esimerkki taulun käytöstä on taulukossa 8.19.

 

Deleted

ResourceID

Name

False

1

Paikkamäärä

False

2

Liitutaulu

Taulukko 8.19: Esimerkki Resource-taulun käytöstä

 

8.5.3        PersonParameterType-tauluun tehdyt muutokset

Tauluun (ks. luku 3.12) lisättiin nimikenttä korvaamaan aiemmin erillisessä PersonParameterTypeTranslation-taulussa olleita tietoja. Kentän kuvaus alla.

Name                  sisältää parametrityypin nimen.

 

 

Esimerkki taulun käytöstä on taulukossa 8.20.

 

Deleted

PersonParameterTypeID

Name

False

1

Puhelin

False

2

WWW-osoite

Taulukko 8.20: Esimerkki PersonParameterType-taulun sisällöstä.

 

 

 

8.5.4        OrgParameterType-tauluun tehdyt muutokset

Tauluun (ks. luku 2.4) lisättiin nimikenttä korvaamaan aiemmin erillisessä OrgParameterTypeTranslation-taulussa olleita tietoja. Kentän kuvaus alla.

Name                  sisältää parametrityypin nimen.

 

Esimerkki taulun käytöstä on taulukossa 8.21.

 

Deleted

OrgParameterTypeID

Name

False

1

Vastuualue

Taulukko 8.21: Esimerkki OrgParameterType-taulun sisällöstä.

 


9       Muut moduulit

Tässä luvussa esitellään muita KOTKA-järjestelmään toteutettuja taulurakenteita.

9.1        AutoNumber

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 9.1. Esimerkissä seuraavalle Person-tauluun lisättävälle henkilölle annetaan tunnisteeksi 3 ja seuraavalle Organisation-tauluun lisättävälle organisaatiolle 7.

 

TableName

Value

Person

3

Organisation

7

Taulukko 9.1: Esimerkki AutoNumber-taulun sisällöstä.

9.2        LocalizedUI

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 9.2, jossa määritellään ShowLogoutVerify.jsp-sivun ensimmäinen elementti suomeksi ja englanniksi. Kyseessä on selvästi jokin käyttöliittymän painike.

 

File

Element

LanguageID

Text

ShowLogoutVerify

1

1

Back

ShowLogoutVerify

1

2

Takaisin

Taulukko 9.2: Esimerkki LocalizedUI-taulun sisällöstä.

 


9.3        Ini

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 9.3, jossa määritellään ylläpitäjän sähköpostiosoite ja sähköpostipalvelimen osoite. Näitä tarvitaan esimerkiksi uusia salasanoja lähetettäessä.

 

Name

Value

AddministratorEMail

Kotkaadmin@st.jyu.si

SMTPServer

smtp.jyu.fi

Taulukko 9.3: Esimerkki Ini-taulun sisällöstä.

9.4        Module

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 9.4, jossa määritellään ShowLogoutVerify.jsp-tiedoston ensimmäinen elementti suomeksi ja englanniksi.

 

Deleted

ModuleID

False

1

False

2

Taulukko 9.4:  Esimerkki Module-taulun sisällöstä.


9.5        ModuleLanguage

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 9.5, jossa määritellään kurssikirjanpitomoduulin nimi suomeksi ja englanniksi.

 

Deleted

ModuleID

LanguageID

Name

False

1

1

Course bookkeeping

False

1

2

Kurssikirjanpito

Taulukko 9.5: Esimerkki ModuleLanguage-taulun sisällöstä.

 


10                            Kehitysasteella olevien moduulien taulutarpeet

Tässä luvussa käsitellään niitä moduuleita, joiden tietokantaratkaisujen suunnittelu on joko pahasti kesken tai suunnittelua ei ole vielä edes aloitettu.

10.1    Henkilöstön, projektien ja raha-asioiden hallinta ja suunnittelu

KOTKA-projektiorganisaation tietämys hallintomoduulin tarpeista rajoittuu pääosin Timo Tiihosen haastatteluun (katso Kotka-projektin projektikansion haastatteluosuus). Tässä luvussa on kuitenkin esitetty joidenkin haastattelussa esiin nousseiden ominaisuuksien toteutusmahdollisuuksia.

Hallintopuolen asioita sivuaa myös tietotekniikan laitoksen käyttöön tarjottu MS-Access -pohjainen henkilörekisterisovellus. Projektiryhmä osallistui kyseisen sovelluksen esittelytilaisuuteen, mutta tilaisuuden anti ominaisuuksien kartoittamisen osalta jäi hyvin laihaksi. Kyseisen sovelluksen käsikirja löytyy projektikansiosta. Lisäksi tietoa halinto-osuuden tarvitsemasta datasta saatiin Heinolan kansalaisopiston hallinto-ohjelmistoa koskevista suunnitelmista. Näiden pohjalta ei kuitenkaan ole ryhdytty mihinkään laajempiin toimenpiteisiin.

Haastattelun mukaan toimistohenkilökunnan tulee pystyä siirtämään järjestelmässä olevaa tietoa omaan paikalliseen työasemaansa. Käytännössä tämä tarkoittaa usein tiedon siirtämistä MS-Office -toimisto-ohjelmistopaketin sovelluksiin, sillä ne ovat valitettavan yleisiä toimistokäytössä. Samat siirtoperiaatteet toki toimivat myös muiden valmistajien tuotteiden kohdalla. Tiedonsiirtomuodoista puhdas ASCII-siirto olisi varmaan helpoin toteuttaa. Mahdollisesti voitaisiin ajatella jotain XML-pohjaista siirtotapaa.

 

10.1.1    Projektien hallinta

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.

 

10.1.2    Ehdotusten käsittely

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ä.

 

10.1.3    Vierailijoiden tiedot

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.

10.2    Kurssien, tenttien ja resurssien sijoittumisen suunnittelu

Jonkin verran tämän moduulin tarvitsemasta tietokannasta on määritelty kurssikirjanpitoon liittyvien taulujen yhteydessä luvussa 4 sekä salivarausten yhteydessä luvussa 8. Tämän moduulin tietokantaosuuden täytyy kuitenkin mahdollistaa jonkinlainen esitysjärjestelmä, kuten hallinnon kohdalla luvussa 10.1. Ominaisuuden avulla esimerkiksi demoluokkaa kaipaava luennoitsija tai kursseja suunnitteleva amanuenssi kirjaisi järjestelmään tiedot uudesta tilatarpeesta. Esitys menisi edelleen jonkinlaisen hyväksymisseulan läpi (kuten luvussa 10.1) ja lopullinen päätös olisi taas luettavissa järjestelmästä.

Varauspyyntöjen tietoihin toivottiin liitettäväksi enemmän varattavalle tilalle asetettavia vaatimuksia (kuten piirtoheitin tai tussitaulu) kuin pelkän salinumeron. Tällöin salivarauksista päättävä taho voi yrittää sijoittaa varaukset sopiviin saleihin. Vaaditut ominaisuudet löytyvät Resource-taulusta ja SpaceResource-taulun avulla löydetään vaatimuksia vastaavat salit. Tarkempi rakenne on esitetty salivarausten yhteydessä luvussa 8. Lisätietoja on Kotka-projektin projektikansion haastatteluosuudessa Elina Laiho-Logrénin haastattelussa sekä Kiuru-projektin haastatteluraportissa.

Samaan toteutukseen täytyy integroida lisäksi kurssien ja tenttien sijoittaminen, sillä pidettävät kurssit vaativat saleja ja ilman kursseja ei ole tenttejäkään. Lisäksi kurssien pitää sijoittua toisiinsa nähden loogisesti. Tenttien sijoittamiseksi on jo valmiita ohjelmistoja, joista on lisätietoa projektikansion liiteosuudesta.

Saliryhmien vahvistusoikeudet pitäisi jatkokehityksessä määritellä yksittäisten henkilöiden lisäksi tapahtumaryhmäkohtaisesti. Koska sekä sali- että tapahtumaryhmät voidaan määritellä rekursiivisesti, yliryhmiin kuuluvat jäsenet pitää päivittää ajan tasalle aina yksittäistä aliryhmää muutettaessa (vastaava toiminto on organisaatioiden määrittelyssä). Tämä nopeuttaa oleellisesti tiedonhakua. Taulujen päivitykset voidaan automatisoida käyttämällä herättimiä (trigger) tai sääntöjä (rule), jotka tosin eivät ole SQL92-standardin mukaisia.

10.3    Viestimoduli

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ä.


 

11                            Käytetyt epästandardit SQL-piirteet

 

Luvussa kuvataan Kotka-järjestelmän tietokannan luomisessa ja käsittelyssä käytettyjä PostgreSQL:n ominaisuuksia, jotka eivät kuulu SQL92-standardiin.

 

11.1     Reservation- ja EventSpace-taulujen synkronointi

Kiuru-sovelluksen eräänä toteutusperiaatteena oli, että uudet taulut vaikuttaisivat mahdollisimman vähän olemassaoleviin rakenteisiin. Salivaraukset muodostetaan lisäämällä Reservation-tauluun (luku 8.3.2) tietue, jossa on viitteet Event- (luku 4.25) ja Space- tauluihin (luku 4.27) kuvaamaan salivarauksen aikaa ja paikkaa.

                      Vastaava rakenne on toteutettu aiemmin kurssikirjanpitomoduulissa EventSpace-taulussa (luku 4.28). Taulu on käytössä mm. määritettäessä paikkoja opetustapahtumille, tenttipäiville ja opiskelijoiden henkilökohtaisille tapahtumille, mutta se ei ota huomioon salivarauksia.

                      Salivarauksen yhteydessä EventSpace- ja Reservation- taulujen viitteiden täytyy aina osoittaa samoihin saleihin ja tapahtumiin. Muuten käyttöliittymä saattaa näyttää tapatuman sijoitetun saliin, jota ei ole sille varattu tai sitten varauksen, jota ei ole yhdistetty mihinkään järkevään tapahtumaan. Tämän varmistaminen vaatisi järjestelmän olemassaolevan koodin läpikäymisen kaikkien SQL-lauseiden osalta, jotka viittaavat EventSpace-tauluun.

                      Kiuru-projektiryhmä päätyi varmistamaan tietojen yhtenäisyyden PostgreSQL-palvelimelle sijoitetun säännön (rule) avulla. Säännöt eivät kuulu SQL92-standardiin, mutta tässä tilanteessa säännön käyttö säästi merkittävästi koodaustyötä. Lisäksi useimmissa tietokannan hallintajärjestelmissä on vastaava toiminnallisuus (tosin säännön muoto saattaa vaihdella).

                      Synkronointisääntö toimii periaatteeltaan seuraavasti: jos tietokannassa päivitetään olemassaolevan EventSpace-taulun tapahtuma- tai paikkaviitettä ja on olemassa vastaava Reservation-taulun tietue, merkitään vastaavaan Reservation-tietueen Inconsistent-kenttään arvo 1. Tällöin epäyhtenäisyydet saadaan selville yksinkertaisella haulla ja esim. ylläpitäjä voi ne korjata.