Tietotekniikan laitos Käki-projekti TIETOKANTASUUNNITELMA. 1. Johdanto

Samankaltaiset tiedostot
Käyttöliittymäsuunnitelma

HELIA 1 (14) Outi Virkki Tiedonhallinta

CSE-A1200 Tietokannat

Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot)

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

HELIA 1 (12) Outi Virkki Tiedonhallinta

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Lohdutus - tietokantadokumentti

Käki-projekti. Huttunen Sami Lamminmäki Tatu Lappi Juha Pelkkikangas Eija. Sovellusraportti Versio 2.0

Ylläpitodokumentti. PLAYOFF Jari Anttila Sanna Fröblom Aarno Sandvik Tommi Paavilainen Miikka Kohijoki. Päivi Pääkkö, ohjaaja

Kirjasto Relaatiotietokannat Kevät Auvinen Annemari Niemi Anu Passoja Jonna Pulli Jari Tersa Tiina

Tiedonhallinnan perusteet. H11 Ovien ja kulun valvontajärjestelmän tietokanta

ALMU-järjestelmä Suunnitteludokumentti

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

Tietokannat II -kurssin harjoitustyö

HELIA TIKO-05 1 (22) ICT03D Tieto ja tiedon varastointi E.Räty, O.Virkki

Denormalisointia turvallisesti. Ougf syysseminaari Pörssitalo Helsinki Timo Raitalaakso

Treenitietokannan suunnitteludokumentti

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

Tietokantakurssit / TKTL

Opintopiiritehtävä 3: Verkkohuutokauppa

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

CS-A1150 Tietokannat CS-A1150 Tietokannat / 44

Tietokantojen suunnittelu, relaatiokantojen perusteita

HELIA 1 (14) Outi Virkki Tiedonhallinta

3. Taulujen määrittely ja muuttaminen

3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN

Lohtu-projekti. Ylläpitäjän dokumentti. Versiohistoria: Ensimmäinen versio Andreas Asuja

SQL - STRUCTURED QUERY LANGUAGE

Ylläpitodokumentti. Oppimistavoitteiden hallintajärjestelmä harri

HAAGA-HELIA Heti-09 1 (12) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Näkymät

Ohjelmistojen mallintaminen, olioja relaatiomallinnuksen suhteesta

2. Käsiteanalyysi ja relaatiomalli

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

Tehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen

Harjoitustehtävä 1. Harjoitustehtävä 2. Harjoitustehtävä 2. Harjoitustehtävä 2. Harjoitustehtävä 2. SQL kysely

Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä

Tietokannan hallinta. Kevät 2004 Jan Lindström R&G Chapter 1

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, s 2005 SQL-perusteet. Harri Laine 1. SQL tietokantakieli

HELIA 1 (11) Outi Virkki Tiedonhallinta

Suunnitteludokumentti

HAAGA-HELIA TIKO-05 1 (19) ICT23a Tietokannan suunnittelu ja toteutus O.Virkki

RADAR - RANDOM DATA GENERATOR

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

Tietokanta projektin alussa: create table kurssin_tila ( NOT NULL VARCHAR2(60) create table kurssin_tyyppi ( create table opintojakson_tyyppi (

Helsingin yliopisto/tktl Tietokantojen perusteet, s 2007 SQL:n perusteet. Harri Laine 1. SQL tietokantakieli. SQL tietokantakieli

Written by Administrator Monday, 05 September :14 - Last Updated Thursday, 23 February :36

Suunnitteludokumentti

Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa

Ylläpitodokumentti. Ohjelmistotuotantoprojektin tietojärjestelmä OhtuTie

POISSAOLOJEN SEURANTAJÄRJESTELMÄ

Tällä viikolla. Kotitehtävien läpikäynti Aloitetaan Pelifirman tietovaraston suunnittelu Jatketaan SQL-harjoituksia

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

Tietokantasovellus: drinkkiarkisto

TIE 280. Kyyhky PROJEKTIPALAVERI, PÖYTÄKIRJA. Aika: Keskiviikko klo

HAAGA-HELIA TIKO - Heti09 1 (22) ICT05 Tiedonhallinta ja Tietokannat E.Räty, O.Virkki, M.Laiho

TIEDONHALLINTA - SYKSY Luento 2. Pasi Ranne /8/17 Helsinki Metropolia University of Applied Sciences

HELIA 1 (17) Outi Virkki Tiedonhallinta

määritellä ja muokata tietokantaa ja sen käyttöoikeuksia virittää tietokannan talletusrakenteita hakea tietoa tietokannasta

eopas ja ehops HT Antti Auer TieVie asiantuntijakoulutus

ehopsin käyttöohje opiskelijalle

Helsingin yliopisto, tktl DO Tietokantojen perusteet, kevät 2000 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot

1 YLEISTÄ (KS) SQL-TRAINER - KUVAUS NYKYISESTÄ JÄRJESTELMÄSTÄ (HL,KS) JATKOKEHITYKSEN VAATIMUKSET (HL,KS)...7

OpenOffice.org Base 3.1.0

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

T Testiraportti TR-3. ETL-työkalu

D B. Tietokannan hallinta - kurssin tavoite. Kurssilla opitaan periaatteet. Edellytyksenä osallistumiselle on Tietokantojen perusteiden hallinta

määritellä ja muokata tietokantaa ja sen käyttöoikeuksia virittää tietokannan talletusrakenteita hakea tietoa tietokannasta

TIETOKANTOJEN PERUSTEET MARKKU SUNI

Ylläpitodokumentti Labra

select tulostietomäärittely from taulukkeet [where valintaehdot] [group by ryhmitystekijät] [having ryhmärajoitteet] [order by järjestysperusta]

Käyttöjärjestelmät: prosessit

SQL-kielen perusteet. Tietokantojen perusteet

Tietokantojen perusteet, syksy 1999 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot

Harjoitustehtävä 1. Harjoitustehtävän 1 ratkaisu. Harjoitustehtävä 1. Relaatioalgebra -liitokset (join) Liitos

Luento 2: Tiedostot ja tiedon varastointi

3. Käsiteanalyysi ja käsitekaavio

Helsingin yliopisto, tktl DO Tietokantojen perusteet, kevät 2000 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot

Kuntokirjuri. Ohjelmistokuvaus. Miika Alonen. Jarkko Laine. Jesse Honkanen. Veli Matti Huovinen. Jani Jäntti. Versio

HSMT Tietokannoista. Ville Leppänen. HSMT, c Ville Leppänen, IT, Turun yliopisto, 2008 p.1/32

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

Timo Laakso YHTEISÖN TURNAUSSIVUSTON SUUNNITTELU

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu

ehops-opastus Sisältö Opintosuunnitelman luominen askeleittain Opintosuunnitelman muokkaus Opintojen aikatauluttaminen

Toteutusdokumentti NJC2. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Asennusohje. Sahara-ryhmä. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

TIEDONHALLINTA - SYKSY Luento 7. Pasi Ranne /10/17 Helsinki Metropolia University of Applied Sciences

Tiedonlouhinta rakenteisista dokumenteista (seminaarityö)

TIETOKANTOJEN PERUSTEET OSIO 8 MARKKU SUNI

SQL. ! nykystandardi SQL3 eli SQL'99. ! CREATE TABLE, ALTER TABLE ja DROP TABLE. ! CREATE VIEW ja DROP VIEW. ! CREATE INDEX ja DROP INDEX

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

Muutokset WebOodin versiossa 2.7 Virkailijoille näkyvät muutokset

Action Request System

EMVHost Online SUBJECT: EMVHOST ONLINE CLIENT - AUTOMAATTISIIRROT COMPANY: EMVHost Online Client sovelluksen käyttöohje AUTHOR: DATE:

GroupDesk Toiminnallinen määrittely

Tuotteiden tiedot: Lisää uuden tuotteen tiedot. Muuta tai poista tuotteen tiedot. Selaa kaikkien tuotteiden tietoja.

Visual Case 2. Miika Kasnio (C9767)

Transkriptio:

Jyväskylän yliopisto SUUNNITELMA Tietotekniikan laitos 5.11.2003 Käki-projekti TIETOKANTASUUNNITELMA 1. Johdanto Suunnitelma sisältää kuvauksen tietokannan suunnittelussa käytetyistä periaatteista, kuvan relaatiotietokannasta, sekä sen luomiseen liittyvät SQLlauseet kommentteineen. 2. Suunnitteluperiaatteita Tietokannan suunnittelun alkuvaiheessa havaittiin opintokokonaisuuksien ja tutkintovaatimuksien koostuvan samanlaisesta rekursiivisesta ryhmittelystä. Näin nähtiin järkeväksi luoda tietokanta mahdollisimman dynaamiseksi useamman sisäisen ryhmittelyn mahdollistamiseksi. Tietokannan suunnittelun lähtökohtana on siis ollut luoda taulurakenteesta mahdollisimman laajennettava pyrkien mahdollisimman vähän rajoituksia asettavaan kokonaisuuteen. Kokonaisuutena tietorakenne perustuu ajatukseen, että tutkintorakenne esitetään rekursiivisistä ryhmistä koostuvana ryhmänä. Tämän rakenteen avulla voidaan esittää myös opiskelijan suunnitelmat, joista tallennetaan perustiedot ja siihen liittyvien kurssien ja kokonaisuuksien suunnitellut ajankohdat, mutta ei rakennetta. Opiskelijan suunnitelmien lisäksi ja niiden teon tueksi, Korppi-järjestelmästä löytyy kurssien suoritustiedot. Ne voidaan esittää käyttöliittymässä rinnalla, mutta niitä ei muuten huomioida opiskelusuunnitelman tietorakenteessa. 2. Teknisiä ratkaisuja Taulujen ja taulujen kenttien nimissä käytetään Korppi-järjestelmän kehityksessä käytettyä nimeämistapaa soveltuvin osin. Pääsääntöisesti kaikki HOPS-sovellukseen liittyvät taulut alkavat study-alulla. Id-kentät nimetään taulujen mukaan Korppi-perinteitä kunnioittaen. Tietojen poistamisessa menetellään edelleen Korppi-perinteen mukaisesti, jottei tietoa vahingossa tuhota. Jokaiseen tauluun liittyy siis kenttä deleted, joka kuvaa tietueen poistamista. Viite-eheyksien säilyminen taataan käyttämällä ON DELETE RESTRICT määritystä viite-avaimiin liittyen. Viitteisiin liittyvät päivitykset peritään, eli yleensä viite-avaimiin liittyen asetetaan ON UPDATE CASCADE.

3. Olemassa olevien Korppi-taulujen hyödyntäminen Korppi-järjestelmästä käytetään ainakin seuraavia olemassaolevia tauluja: - Henkilö-taulu (person) - Organisaatio-taulu (organisatio & organisationtranslation) - Kurssi-nimike -taulu (course & coursetranslation) - Kielitaulu (language) - Ryhmätaulu (eventgroup & groupparticipant) Ko. taulut on kuvattu tässä suunnitelmassa vain tarvittavin osin ja pyritty esittämään erillään muista. Näiden taulujen lisäksi opiskelija -liittymässä hyödynnetään kurssiesiintymä taulua suoritusten esittämiseen. 4. Kokonaiskuva tietorakenteesta Kuva 1. Kuva relaatiotietokannasta

5. Tietokantataulujen rakenne Seuraavassa on kuvattu tietokantataulujen rakenne, sekä pyritty lyhyesti ajantuksenomaisesti kuvaamaan niiden sisältöä. Tarkempi käyttötarkoitus ilmenee Vaatimusmäärittelyn ja muiden suunnitteludokumenttien avulla. 5.1 Yleistaulut CREATE TABLE study_right_type ( 'sihteerin' ja 'opiskelijan' -toimintoihin liittyvät oikeudet righttypeid integer NOT NULL, name varchar NOT NULL, PRIMARY KEY (righttypeid) 5.2 'Tutkintorakenteet' CREATE TABLE study_group_status ( ryhmittelyihin liittyvät tilat groupstatusid integer NOT NULL, name varchar NOT NULL, PRIMARY KEY (groupstatusid) CREATE TABLE study_group_type ( ryhmittelyn tyyppi, lähinnä ohjelmoijan käyttöön grouptypeid integer NOT NULL, name VARCHAR NOT NULL, PRIMARY KEY (grouptypeid) CREATE TABLE study_group ( ryhmittelyn perustiedot yhteistä kaikille ryhmille, kielestä riippumaton data studygroupid integer NOT NULL, grouptypeid integer, organisationid integer NOT NULL, personid integer, henkilökohtaiset tutkintovaatimukset (korvaavuudet) groupstatusid integer, min_credits integer, pakollisuus, valinnaisuus, vaihtoehtoisuus min_count integer, pakollisuus, valinnaisuus, vaihtoehtoisuus coursemask varchar, ryhmään kuuluvien kurssien määrittely hakumaskilla valid_from_year integer, minkä vuoden modifiedon TIMESTAMP, PRIMARY KEY (studygroupid), FOREIGN KEY (grouptypeid) REFERENCES study_group_type (grouptypeid)

FOREIGN KEY (organisationid) REFERENCES organisation (organisationid) FOREIGN KEY (groupstatusid) REFERENCES study_group_status (groupstatusid) CREATE TABLE study_group_right_relation ( ryhmittelyjen oikeuksien hallinta oikeuksia voi saada henkilö tai ryhmä grouprighttypeid integer NOT NULL, studygroupid integer NOT NULL, personid integer, righttypeid integer, eventgroupid integer, PRIMARY KEY (grouprighttypeid), FOREIGN KEY (righttypeid) REFERENCES study_right_type (righttypeid) FOREIGN KEY (eventgroupid) REFERENCES eventgroup (eventgroupid) CREATE TABLE study_group_parameter_type ( ryhmittelyihin liittyvät erikoiskentät (siis ei kaikille ryhmittelyille yhteisiä) groupparametertypeid integer NOT NULL, name varchar UNIQUE NOT NULL, PRIMARY KEY (groupparametertypeid) CREATE TABLE study_group_parameter( ryhmittelyihin liittyvät erikoiskentät [yhdistää ryhmittelyn kenttään] groupparameterid integer NOT NULL,

studygroupid integer NOT NULL, groupparametertypeid integer NOT NULL, PRIMARY KEY (groupparameterid), FOREIGN KEY (groupparametertypeid) REFERENCES study_group_parameter_type (groupparametertypeid) CREATE TABLE study_group_parameter_translation ( ryhmittelyihin liittyvien erikoiskenttien kielikohtaiset arvot groupparameterid integer NOT NULL, languageid integer NOT NULL, value varchar, PRIMARY KEY (groupparameterid,languageid), FOREIGN KEY (languageid) REFERENCES language (languageid) FOREIGN KEY (groupparameterid) REFERENCES study_group_parameter (groupparameterid) CREATE TABLE study_group_relation ( ryhmittelyihin liittyvien kurssien ja aliryhmien yhdistäminen grouprelationid integer NOT NULL, studygroupid integer NOT NULL, subgroupid integer, courseid integer, ordernum integer, ryhmittelyn sisäinenjärjestys PRIMARY KEY (grouprelationid), FOREIGN KEY (subgroupid) REFERENCES study_group (studygroupid) FOREIGN KEY (courseid) REFERENCES course (courseid) 5.3 'Opiskelusuunnitelmat' CREATE TABLE study_plan_status ( Suunnitelmaan liittyvät tilat

planstatusid integer, name varchar UNIQUE NOT NULL, PRIMARY KEY (planstatusid) CREATE TABLE study_plan ( Opiskelusuunnitelmat Perustiedot planid integer, studygroupid integer NOT NULL, suunnitelman pohjatieto personid integer NOT NULL, kenen suunnitelma planstatusid integer NOT NULL, suunnitelman tila (lukitukset...) name varchar, suunnitelmalle annettu nimi modifiedon TIMESTAMP, active BOOLEAN, onko suunnitelma aktiivinen (vain yksi saisi olla) PRIMARY KEY (planid), FOREIGN KEY (planstatusid) REFERENCES study_plan_status (planstatusid) CREATE TABLE study_season ( Opiskeluvuoteen liittyvät jaksotukset seasonid integer, name varchar, ordernum integer, PRIMARY KEY (seasonid) CREATE TABLE study_unit ( Opiskelusuunnitelmaan liittyvät valinnat (tästä haetun tiedon järjestelyn pohjana käytetään suunnitelman pohjatietoa) unitid integer, planid integer, selected boolean, suorituksen liittyvä valinnaisuus (valittu suoritettavaksi) planned_year integer, suorituksen suunniteltu vuosi seasonid integer, suorituksen suunniteltu kausi studygroupid integer, suorituksen kohde (ryhmittely tai null) courseinstanceid integer, suorituksen kohde, 'valeilmoittautuminen' (kurssi-instanssi tai null) PRIMARY KEY (unitid),

FOREIGN KEY (planid) REFERENCES study_plan (planid) FOREIGN KEY (seasonid) REFERENCES study_season (seasonid) FOREIGN KEY (courseinstanceid) REFERENCES courseinstance (courseinstanceid) CREATE TABLE study_unit_comment_type ( kommenteihin liittyvät tyypit, joihin liittyy myös näkyvyys unitcommenttypeid integer NOT NULL, name varchar UNIQUE NOT NULL, PRIMARY KEY (unitcommenttypeid) CREATE TABLE study_unit_comment ( Suunnitelmiin liittyvät perustelut ja kommentit unitcommentid integer, unitcommenttypeid integer, unitid integer, personid integer, kenen lisäämä value varchar, modifiedon TIMESTAMP, milloin, aikajärjestykseen parent integer, PRIMARY KEY (unitcommentid), FOREIGN KEY (unitid) REFERENCES study_unit (unitid) FOREIGN KEY (unitcommenttypeid) REFERENCES study_unit_comment_type (unitcommenttypeid) FOREIGN KEY (parent) REFERENCES study_unit_comment (unitcommentid) CREATE TABLE study_plan_right_relation ( Suunnitelmiin liittyvät oikeudet planrightrelationid integer, planid integer NOT NULL,

personid integer, righttypeid integer NOT NULL, eventgroupid integer, PRIMARY KEY (planrightrelationid), FOREIGN KEY (planid) REFERENCES study_plan (planid) FOREIGN KEY (righttypeid) REFERENCES study_right_type (righttypeid) FOREIGN KEY (eventgroupid) REFERENCES eventgroup (eventgroupid) 6. Jatkokehityksessä huomioitavaa - Kottairainen-sovelluksen kyselyjen liittäminen tutkintorakenteeseen - Korvaavuuksien esittäminen - Korvaavuus voi koostua useammasta kurssista - Yliopiston ulkopuolisten tai suunnitteilla olevien lisääminen - Suunnitelmien virallisuus, hyväksyminen tarkastettava - Käyttöoikeuksien hallinta - Opintokokonaisuuksien suoritusten hallinta - Pohdittiin perustelujen linkityksen tarkentaminen 7. ToDo - suunnittelun alla - Voiko tutkintorakenteeseen liittyä useampi organisaatio - vai riittääkö liittyminen oikeuksien kautta - onko tutkintorakenteella henkilöä (luojaa/omistajaa) - mihin tarvitaan? (oikeudet, oletukset) - viite-eheys, jos käyttäjä häviää? - onko osa suunnitelmiin liittyvistä kommentteista yksityisiä