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

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

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

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

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

Ylläpitodokumentti. Oppimistavoitteiden hallintajärjestelmä harri

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

SQL - STRUCTURED QUERY LANGUAGE

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

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

HELIA 1 (14) Outi Virkki Tiedonhallinta

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

Helsingin yliopisto, TKTL Tietokantojen perusteet, k 2000 SQL- osa Harri Laine 1. SQL-valintaehto. SQL-valintaehto.

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

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

Tietokantojen perusteet, syksy 1999 SQL- osa Harri Laine 1. SQL-valintaehto. SQL-valintaehto. Opettajien nimet: Opiskelijoiden pääaineet

Tietokantakurssit / TKTL

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

Ylläpitodokumentti. Ohjelmistotuotantoprojektin tietojärjestelmä OhtuTie

SELECT-lauseen perusmuoto

Ylläpitodokumentti Mooan

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

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

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

Testausraportti v.1.3

3. Taulujen määrittely ja muuttaminen

3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN

Testaussuunnitelma. Ohjelmistotuotantoprojekti Nero. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

SQL - Tietokannan ylläpito. SQL - Tietokannan ylläpito. SQL - Tietokannan ylläpito. SQL - Tietokannan ylläpito. SQL - Tietokannan ylläpito

58160 Ohjelmoinnin harjoitustyö

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:

HELIA TIKO-05 1 (17) ICT03D Tieto ja tiedon varastointi Räty, Virkki

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

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

Lohtu-projekti. Testaussuunnitelma

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

Hakukyselyt: SELECT * FROM taulu WHERE sarake1 = Malli Nimi [WHERE sarake1 LIKE M% ] [WHERE BETWEEN ehto1 AND ehto2] [WHERE sarake1 IN/= (alikysely)]

Kirjoita jokaiseen erilliseen vastauspaperiin kurssin nimi, tenttipäivä, oma nimesi (selkeästi), opiskelijanumerosi ja nimikirjoituksesi

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

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

Matematiikan oppifoorumi Projektisuunnitelma

Helsingin yliopisto, Tietojenkäsittelytieteen laitos Tietokantojen perusteet, , H.Laine

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

Johdanto Javaan ja tietokantojen käsittelyyn Java Database Connectivity (JDBC)

LINUX-HARJOITUS, MYSQL

Lohdutus - tietokantadokumentti

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

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

SQL-kielen perusteet. Tietokantojen perusteet

CSE-A1200 Tietokannat

ALMU-järjestelmä Suunnitteludokumentti

HELIA 1 (11) Outi Virkki Tiedonhallinta

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

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

Opettajatuutorointi-kurssin syksyn 2006 kyselyjen tulokset

2. Käsiteanalyysi ja relaatiomalli

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

Tietokantasovelluksen määrittelydokumentti

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

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

T Projektikatselmus

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

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

T Testiraportti TR-3. ETL-työkalu

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Määrittelydokumentti NJC2. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Graafinen käyttöliittymä lintujen rengastusjärjestelmään

Tietokantojen perusteet, s 1999 SQL- osa Harri Laine 1. SQL -ohjelmistojen markkinaosuuksia SQL. SQL - historiaa. SQL - standardointi

HELIA 1 (14) Outi Virkki Tiedonhallinta

Relaatiotietokantojen perusteista. Harri Laine Helsingin yliopisto

TIETOKANTOJEN PERUSTEET MARKKU SUNI

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

Tietokanta.java Luokka tarjoaa välineet tietokannan lukemiseen. Haetuista tiedoista muodostetaan kurssi- ja opetus-olioita.

T Testiraportti TR-2. ETL-työkalu

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

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

HOJ Haja-aiheita. Ville Leppänen. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/10

Tämän lisäksi listataan ranskalaisin viivoin järjestelmän tarjoama toiminnallisuus:

Ylläpito-ohje. Matematiikan oppifoorumi. Carl Johansson Jukka Kariola Outi Marttila Helena Venäläinen Sampsa Virtanen. Ohjaaja.

Kyselyt: Lähtökohtana joukko lukuja Laskukaava kertoo miten luvuista lasketaan tulos soveltamalla laskentaoperaatioita

Tietokannanhoitaja DBA (Database Administrator) ja tietokannan hallinta

Ylläpitodokumentti. Boa Open Access. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI

Harjoitus 5 (viikko 48)

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

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

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

Ylläpito. Ylläpito. Ylläpidon lajeja Ohjelmistotuotanto, syksy 1998 Ylläpito

Relaatioalgebra. Kyselyt:

Tietokantasovellus: drinkkiarkisto

Helsingin yliopisto/tktl Kyselykielet, s 2006 Optimointi Harri Laine 1. Kyselyn optimointi. Kyselyn optimointi

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

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

Treenitietokannan suunnitteludokumentti

Subversion-ohje. Linux Traffic Control-käyttöliittymä Ryhmä paketti2

Käyttöohje. Labra. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

EXEC SQL BEGIN DECLARE SECTION

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

Relaatioalgebra. Relaatioalgebra. Relaatioalgebra. Relaatioalgebra - erotus (set difference) Kyselyt:

Transkriptio:

SISÄLLYS 1 YLEISTÄ (KS)...1 1.1 PROJEKTIN HENKILÖT...1 1.2 PROJEKTIMENETELMÄ JA KÄYTETTÄVÄT TYÖKALUT...1 2 SQL-TRAINER - KUVAUS NYKYISESTÄ JÄRJESTELMÄSTÄ (HL,KS)...2 2.1 OHJELMAN TOIMINTA...2 2.2 OHJELMAN TEKNIIKKA...3 2.3 OHJELMAN KAAVIOITA...5 3 JATKOKEHITYKSEN VAATIMUKSET (HL,KS)...7 3.1 RELAATIOALGEBRAN HARJOITTELU...7 3.2 TIETOKANNAN YLLÄPITO-OPERAATIOT...8 3.3 TEHTÄVIENLAADINNAN JA TARKASTAMISEN APUVÄLINEET...8 4 PROJEKTIN TEHTÄVÄT (KS,JN,ST,GE)...9 4.1 RYHMÄJAKO...10 4.2 VASTUUT...10 5 AIKATAULU JA TARKISTUSPISTEET (KS)...11 6 DOKUMENTIN KIRJOITTAJAT (KS)...12 LIITTEET SQL-Trainer tietokannan luonti-sql Projektikaavio

1 Yleistä (KS) Projekti on tietojenkäsittelytieteen Cum laude approbatur -opiskelukokonaisuuteen kuuluva pakollinen kurssi. Projekti toteutetaan kesän 2000 aikana ja sen on tarkoitus jatkokehittää SQLtrainer ohjelmistoa. Tietokantojen perusteet -kurssilla on ollut syksystä -99 käytössä laskuharjoitukset korvaava harjoitteluohjelmisto (http://www.cs.helsinki.fi/u/laine/tikape/ftrainer.html). Harjoitteluohjelmisto antaa käyttäjille joukon ongelmia, jotka heidän on ratkaistava SQL-kyselyinä. Ohjelmisto kirjaa käyttäjien vastaukset, analysoi ne ja antaa palautetta vastauksen oikeellisuudesta. Oikein ratkaistut tehtävät tuottavat suorituspisteitä. Harjoitteluohjelmiston tietokantana oli syksyllä 99 Solid-kanta ja keväällä 2000 Oracle-kanta. Ohjelmisto on toteutettu Java-servlet tekniikalla. 1.1 Projektin henkilöt Projektiin osallistuvat George El-Khouri, Kimmo Sinkko, Jaakko Nurro ja Santtu Toivakka. Projektin vetäjänä toimii Indrek Peri ja työn tilaajana Harri Laine. Projektiryhmien esimiehenä toimivat Anni Rytkönen ja Juha Taina. 1.2 Projektimenetelmä ja käytettävät työkalut Projektissa käytetään lineaarista vesiputous -projektimallia. Ohjelmointi tehdään Java kielellä ja lähdekoodit talletetaan CVS versiohallintajärjestelmään. Dokumentoinnissa käytetään Microsoft Word 97 tekstinkäsittelyohjelmaa ja tarvittavia graafisia apuvälineitä, kuten vuokaaviopiirto-ohjelmia. Tämän projektin puitteissa tehtävä Java koodi kommentoidaan Javadoc järjestelmällä, mutta Harri Laineen aiemmin laatimaa koodia ei kommentoida, ellei siihen tehdä muutoksia. 1

2 SQL-trainer - Kuvaus nykyisestä järjestelmästä (HL,KS) Tietokantojen perusteet -kurssilla on ollut syksystä -99 käytössä laskuharjoitukset korvaava harjoitteluohjelmisto (http://www.cs.helsinki.fi/u/laine/tikape/ftrainer.html). Harjoitteluohjelmisto antaa käyttäjille joukon ongelmia, jotka heidän on ratkaistava SQL-kyselyinä. Ohjelmisto kirjaa käyttäjien vastaukset, analysoi ne ja antaa palautetta vastauksen oikeellisuudesta. Oikein ratkaistut tehtävät tuottavat suorituspisteitä. Harjoitteluohjelmiston tietokantana oli syksyllä 99 Solid-kanta ja keväällä 2000 Oracle-kanta. Ohjelmisto on toteutettu Java-servlet tekniikalla. 2.1 Ohjelman toiminta Ohjelmalla voi harjoitella SQL-kyselyjä. Ohjelma tarjoaa käyttöliittymän, jonka kautta opiskelija voi antaa kyselyn ja saa tuloksena kyselyn vastauksen sekä tietoa kyselyyn liittyvistä ongelmista. Ohjelman käyttöliittymä on sekä suomen- että englanninkielinen. Opiskelijalla on käytettävissään joukko tauluja (englanninkielisiä). Taulujen rakenne ja sisältö kuvataan avustustiedostossa. Järjestelmä voi käyttää mitä tahansa käyttäjälle harkka näkyviä tauluja. Kirjoittautuessaan järjestelmään opiskelija valitsee itselleen käyttäjätunnuksen ja salasanan. Opiskelija voi halutessaan kirjata henkilötietonsa. Jos hän ei kirjaa henkilötunnustaan ei tuloksia voi kytkeä kurssikirjanpitoon. Seuraavilla käyttökerroilla opiskelija pääsee antamalla käyttäjätunnuksensa ja salasanansa siihen tilanteeseen, johon hän edellisellä kerralla päätyi. Järjestelmä esittää käyttäjälle listan tehtävistä. Listassa näkyvät yrityskertojen lukumäärä ja onko käyttäjä onnistunut jo ratkaisemaan tehtävän. Listalta pääsee vastaamaan tehtävään. Tehtäviin voi vastata missä järjestyksessä tahansa. Samaa tehtävää voi yrittää ratkaista useita kertoja. Käyttäjän tehtävään antama vastaus tarkastetaan ja kirjataan tietokantaan. Annetun vastauksen voi valita pohjaksi uuteen vastausyritykseen joko samalle tai eri tehtävälle. Tarkistuksessa 1. Suoritetaan kysely. 2. Tutkitaan onko kysely syntaktisesti oikein (tkhj tarkastaa) 3. Tutkitaan ovatko kaikki pakolliset sarakkeet mukana 4. Tarkastetaan esiintyykö sarake sisällöllisesti toisteisena 5. Tarkastetaan onko vastauksessa liikaa sarakkeita 6. Tarkastetaan onko vastauksen rivimäärä oikea 7. Tarkastetaan onko tarkistussumma oikein 2

8. Tarkastetaan onko vastauksen järjestys oikein (tarkastetaan kyselyä analysoimalla) 9. Tarkastetaan ovatko kaikki tarpeelliset taulut mukana (ei vielä toteutettu) 10. Tarkastetaan onko kyselyssä tarpeettomia tauluja (ei vielä toteutettu) Käyttäjälle annetaan syntaksivirheestä palautteena tkhj:ltä saatu virheilmoitus. Muista virheistä annetaan virhekohtaiset omat ilmoitukset. Jos kysely tuotti tulostaulun se esitetään käyttäjälle. 2.2 Ohjelman tekniikka Järjestelmä käyttää seuraavia systeemitauluja: pscourse; (kurssitiedot, ei käytössä) psanswer; (kirjatut vastaukset) psstudent; (opiskelijoiden tiedot) psstate; (vastaus laskurit) pstask; (tehtävätiedot) pstopic; (tehtävähyhmätiedot) Järjestelmän käytön kannalta keskeinen on taulu pstask. Siinä annetaan tehtävä ja kuvaillaan oikea vastaus. Tehtävä annetaan sekä suomeksi että englanniksi. 3

Vastauksen kuvailuun liittyvät seuraavat tiedot: ok_rows integer, Nonunique integer, ok_cols integer, ok_checkable varchar(32), ok_checkvalue integer, Ordered char, Neededcols varchar(120), Eqpairs varchar(120), Included varchar(120), col_max integer, Needed_tabs varchar(120), Needless_tabs varchar(120), Oikean vastauksen koko riveinä Vastauksen koko, jos välttämätön unique määre on jäänyt pois Vastauksen sarakkeiden enimmäismäärä Tarkistussummasarakkeen nimi Oikeasta vastauksesta laskettu tarkistussumma Onko järjestettävä (ei ole käytössä) Välttämättömien sarakkeiden luettelo, Sarakenimet annetaan pilkulla eroteltuina Identtiset sarakeparit (sarake1=sarake2). Tällaisia ei ole syytä ottaa mukaan tulokseen. Kyselyyn sisältyvä merkkijono jota käytetään järjestysmääreen tarkistukseen. Ennen vertailua kyselysta karsitaan turhat välilyönnit ja tarkentimet. Vastauksen sarakkeiden määrä (tämä on tarpeeton) Välttämättömien taulujen luettelo, taulunimet pilkulla eroteltuna. Tuottaa virhe ilmoituksen jos jokin näistä puuttuu Tarpeettomien taulujen luettelo. taulunimet pilkulla eroteltuina. Tuottaa virheilmoituksen, jos jokin näistä on mukana Kaavio 1. Taulun pstask sarakkeet Tehtävät näytetään tehtävänumerojärjestyksessä. 4

2.3 Ohjelman kaavioita Kaavio 2. Nykyohjelman sivurakenne Kaavio 3. Nykyohjelman luokkarakenne (osittain) 5

Kaavio 4. Nykyohjelman tietokantarakenne 6

3 Jatkokehityksen vaatimukset (HL,KS) Kesän 2000 ohjelmistotuotantoprojektissa laajennetaan SQL-trainer -ohjelmistoa siten, että pelkkien kyselyiden lisäksi sillä voidaan harjoitella myös relaatioalgebraa ja SQL:n ylläpitooperaatioita. Relaatioalgebran harjoitteluosuus toteutetaan alkeisoperaatioina, jotka konvertoidaan SQL-operaatioiksi. Alkeisoperaatioiden tulokset kirjataan tilapäistauluihin ja niitä voidaan käyttää osina laajempia operaatioita. 3.1 Relaatioalgebran harjoittelu Relaatioalgebraa harjoitellaan käyttämällä samoja tauluja kuin SQL-harjoittelussa. Harjoittelu voisi perustua alkeisoperaatioihin = relaatioalgebran perusoperaatiot. Alkeisoperaatio tuottaa tulostaulun. Kyselyn tulostaulu määritellään näkymänä, jonka nimen osana on käyttäjän tunnus. Käyttäjä rakentaa kyselynsä osina alkeisoperaatioiden ja niiden tulostaulujen avulla. Esim.: käytössä taulut: t1,t2,t3 käyttäjä määrittelee aputaulun t4= t1*t2 käytössä taulut t1,t2,t3,t4 käyttäjä määrittelee aputaulun t5=projektio(a,b)(t4) Käyttäjä voi tulostaa minkä tahansa taulun. Käyttäjä määrittelee jonkin taulun, vaikka t5, tehtävän vastaukseksi Vastaus analysoidaan samoin kuin SQL-kyselyjen vastaukset Käyttäjä voisi valita operaation osapuolet valintalistoista samoin kuin operaation. Tulostiedoston nimi ja operaatioon liitettävä ehto annetaan tekstikentissä. Muista kuin perustauluista pitäisi saada näkyviin paitsi nimi myös relaatioalgebranlauseke. 7

Kaavio 5. Hahmottelua käyttöliittymästä 3.2 Tietokannan ylläpito-operaatiot SQL-trainerissa ei nykymuodossa voi harjoitella ylläpito-operaatioita. Jos muutoksia kohdistetaan kyselyissä käytettäviin tauluihin eivät kyselyihin liittyvät vastausten kuvailutiedot enää täsmää. Ylläpito pitäisi siis kohdistaa muihin tauluihin. Ylläpidon pitäisi kohdistua aina samanlaiseen lähtötauluun, jolloin jollakin standardikyselyllä voitaisiin varmistua siitä onko se muuttunut oikein On vielä avoin ongelma miten tämän voisi tehdä. 3.3 Tehtävienlaadinnan ja tarkastamisen apuvälineet Nykyjärjestelmässä joudutaan tehtäviä laadittaessa suorittamaan manuaalista tarkistussummien laskemista. Lisäksi tehtävien tarkistamisessa käytettävä algoritmi saattaa antaa oikean vastauksen tehtävälle, vaikka sen tulos on väärä. Siksi tarvitaan työkaluja, joilla käsin tehtävästä työstä päästään eroon ja tarkistusmenetelmä on saatava tarkemmaksi. 8

4 Projektin tehtävät (KS,JN,ST,GE) Tehtävät jakautuvat neljään selvään kokonaisuuteen: Relaatioalgebra Relaatioalbegran opetusosassa toteutetaan uusi käyttöliittymän osa, jolla kaikkia relaatioalgebran perusoperaatiota voidaan harjoitella. Käyttöliittymää varten toteutetaan toimintoluokat, jolla toiminnallisuus toteutetaan. Käyttöliittymässä esitetään käyttäjän valitsema operaatio selkokielisenä relaatioalbegran lauseena. Tietokantaluokat Olemassa olevia tietokantaluokkia hyväksikäyttäen toteutetaan tarpeellinen määrä laajennuksia toteuttamaan uusien toimintojen tarvitsemat tietokantaoperaatiot. Ajan salliessa korjataan nykyversiossa esiintyviä ongelmia mm. avoimiksi jäävien kursoreiden osalta. Ylläpito-operaatiot Laajennetaan nykyistä SQL -operaatioiden valikoimaa insert, update ja delete -käskyillä. Käskyjen implementoinnissa käytetään hyväksi olemassa olevia menetelmiä niitä laajentaen. Operaatiot kohdistetaan yhteen järjestelmän uuteen tietokantatauluun, joka luodaan ja jota varten suunnitellaan tarvittavat käsittelyluokat. Lisätään järjestelmään luokka, joka hyväksyy ainoastaan sallitut SQL -operaatiot ja hylkää järjestelmän kannalta epäilyttävät operaatiot kokonaan. Tarkistustyökalut Suunnitellaan ja toteutetaan parempi tehtävän vastauksen tarkistamismenetelmä, sekä tehdään apuvälineitä tehtävien laadintaan. Tarkoituksena on vähentää käsin tehtävän työn osuutta mallivastausten ja tarkistustoimenpiteiden valmistelun yhteydessä. Lähtökohtana on mallivastauksen syöttö järjestelmään, josta talletetaan tunnistetiedot (rivit, sarakkeet ja checksum). Mallivastausta ei talleteta. 9

4.1 Ryhmäjako Edellä mainittuja kokonaisuuksia työstetään seuraavan ryhmäjaon pohjalta: Relaatioalgebra, käyttöliittymä Ylläpito-operaatiot, tarkistustyökalut Tietokantaluokat Jaakko Nurro, George El-Khouri Kimmo Sinkko, Santtu Toivakka Kaikki 4.2 Vastuut Ryhmissä tehtävien töiden lisäksi projektissa on erikoisvastuita seuraavilla henkilöillä: Projektipäällikkö CVS versionhallinta Dokumentointi HTML-muodossa Dokumentoinnin konvertointi tulosteiksi Santtu Toivakka George El-Khouri Kimmo Sinkko Santtu Toivakka 10

5 Aikataulu ja tarkistuspisteet (KS) Projektin elinkaari alkaa OHTU -ryhmän järjestäytymisen jälkeen ja päättyy 30.8.2000 mennessä. Käytännössä projekti on jo käynnistetty ja valmistumisajankohdaksi on asetettu 15.8.2000. Tämän ajankohdan jälkeen on varattu kahden viikon liukuma-aika, jos tarvetta projektin pitkittämiselle ilmenee. Toinen mahdollinen liukuma-aika on ohjelmoinnin lopettamisen ja testauksen aloittamisen välissä siten, että testaukselle varattua aikaa voidaan lyhentää ja komponenttitestausta voidaan tehdä päällekkäin ohjelmoinnin kanssa. Tärkeimmät tarkistuspisteet ja työsuoritteiden palautusajankohdat on esitetty taulukossa 1. Työsuoritteet palautetaan Indrek Perille, joka koordinoi niiden tarkistamisen. Työvaiheesta riippuen muita tarkistajia ovat Anni Rytkönen, Harri Laine ja Juha Taina. Katselmukset asiakkaan ja tarkistajien kanssa järjestetään kulloisenkin tarkistuspisteen yhteydessä tarpeen mukaan tai kun ryhmän työsuoritteet on tarkistettu. Projektisuunnitelma valmis 12.6.2000 Määrittely valmis 27.6.2000 Suunnitteludokumentti ja testaussuunnitelma valmiita 12.7.2000 Ohjelmointi 1.7.-1.8.2000 Testaus 1.8.-15.8.2000 Käyttöohje ja ylläpitodokumentti valmiita 7.8.2000 Projekti päättyy 15..30.8.2000 Taulukko 1. Tarkistuspisteet ja tärkeät ajankohdat 11

6 Dokumentin kirjoittajat (KS) Tässä dokumentissa esiityneet kirjoittajat on mainittu kappaleiden otsakkeissa nimikirjaimin. Kappaleet 2 ja 3 perustuvat Harri Laineen SQL-Trainer HTML dokumentaatioon, jota on osin tarkennettu. Käytetyt lyhenteet ja kirjoittajat: KS JN ST GE HL Kimmo Sinkko Jaakko Nurro Santtu Toivakka George El-Khouri Harri Laine 12

Liite 1: SQL-trainer tietokannan luonti-sql Oracle8 tietokantaan drop table pscourse; drop table psanswer; drop table psstudent; drop table pstask; drop table psstate; drop table pstopic; create table psstudent( sid varchar(10) not null, lname varchar(48) not null, fname varchar(48), last_visit date not null, HETU VARCHAR(11), SS VARCHAR(12), stnumber integer, primary key (sid) ); create table pscourse( year integer, term char, startdate date, enddate date ); create table psstate ( sid varchar(10), task_id integer, lasttry integer, state integer, primary key (sid,task_id)); rem psstate täytyy initialisoida tehtävien lisäämisen jälkeen rem viemällä laskureille alkuarvot 0,0 create table pstopic ( tno integer not null, ttitle_fi varchar(60), ttitle_en varchar(60), tasks integer not null, credits_upto date not null, primary key (tno) ); 13

create table pstask ( task_id integer not null, title_fi varchar(60) not null, title_en varchar(60), task_text_fi varchar(500), task_text_en varchar(500), ok_rows integer, nonunique integer, ok_cols integer, ok_checkable varchar(32), ok_checkvalue integer, ordered char, neededcols varchar(120), eqpairs varchar(120), tno integer, included varchar(120), col_max integer, needed_tabs varchar(120), needless_tabs varchar(120), primary key (task_id), foreign key (tno) references pstopic(tno) ); create table psanswer ( sid varchar(10) not null, task_id integer not null, trycnt integer not null, answ varchar(1000), trydate date, response integer, extra varchar(500), primary key (sid, task_id, trycnt), foreign key (task_id) references pstask(task_id), foreign key (sid) references psstudent(sid) ) storage (initial 5M next 3M pctincrease 5); 14