Kehitysohje. ETL-työkalu. ExtraTerrestriaLs / Aureolis Oy

Koko: px
Aloita esitys sivulta:

Download "Kehitysohje. ETL-työkalu. ExtraTerrestriaLs / Aureolis Oy"

Transkriptio

1 Sivu 1 (15) Kehitysohje ETL-työkalu Versio Pvm Tekijä Kuvaus Timo Sallinen Ensimmäinen versio Timo Sallinen Täydenetty pohjaa Mika Suvanto Pieniä täydennyksiä ja oikolukua Timo Sallinen Pieniä lisäyksiä Mikko Ruokojoki Ulkoasun korjauksia ja otsikoinnin muokkausta Mika Suvanto Ohjeet asennus + kääntäminen Mika Suvanto Ohjeet asennuksesta Ecliseen ja prosessikuvausten kirjoittamisesta Risto Kunnas Ohjeita testaukseen Teemun testauskäytöntöohjeiden pohjalta Mika Suvanto Lisäyksiä mm. prosessin tarkistamiseen ja tietokantatukeen Timo Sallinen Useita muutoksia, jatkokehitysideat Risto Kunnas Jatkokehitysidoita

2 Sivu 2 (15) Sisällysluettelo Johdanto...3 Yleiskuvaus pakettihierarkiasta...3 Tarvittavat JDK:n ulkopuoliset luokkakirjastot... 3 ETL-työkalun standalone - asennus...3 ETL-työkalun Eclipse - asennus jatkokehitystä varten...5 Uuden tietokantatyypin lisäys työkaluun...6 Uuden toimenpiteen luominen... 7 Kuvauskielen muokkauksen tarkistuslista...8 Uuden prosessin luonti... 9 Prosessin toimivuuden testaus...9 Ideoita SCD-toteutukseen...10 Virheidenhallinta Ohjeita lokien tulkintaan Dokumentaatiogeneraattori Testaus...12 Testien luonti Testien ajaminen...13 Hakemistorakenne Ongelmatilanteiden selvittely Ohjelman suorituksen ongelmatilanteet...13 Jatkokehitysideoita Moottori Toimenpiteet... 14

3 Sivu 3 (15) Johdanto Dokumentin tarkoituksena on toimia jatkokehitysohjeena Tietojenkäsittelyopin ohjelmatyökurssin puitteissa luodulle ETL-työkalulle. Dokumentti on FAQ-tyyppinen. Tarkemmat tekniset määrittelyt löydät teknisestä spesifikaatio -dokumentista. Yleiskuvaus pakettihierarkiasta com.aureolis.etltool -Kaikki paketit sijoitetaan tähän nimiavaruuteen com.aureolis.etltool.database - Tietokantaluokat com.aureolis.etltool.operations Toimenpiteiden yhteiset luokat, jokainen toimenpide omaan alipakettiinsa com.aureolis.etltool.engine Moottorin implementaatio com.aureolis.etltool.parameters Prosessin parametrit com.aureolis.etltool.transfer Tiedonsiirtoluokat (mm. SqlTable) (Data Transfer Objects) com.aureolis.etltool.docgen - Dokumentaatiogeneraattori com.aureolis.etltool.test Järjestelmätason testausluokat Tarvittavat JDK:n ulkopuoliset luokkakirjastot Työkalu tarvitsee toimiakseen seuraavat kirjastot Apache Xerces (xercesimpl.jar) ( Kuvauskielen parseri käyttää (validoiva DOM-parseri) JGraph (jgraph.jar) ( JGraphAddons (jgraphaddons.jar) Dokumentaatiogeneraattori käyttää näitä visuaaliseen esitykseen JDBC-ajurit mysql-connector-java jar (MySQL) postgresql-x.y.z-jdbc3.jar (PostgreSQL) ojdbc14.jar (Oracle) Nämä ovat yleensä ladattavissa tietokannan valmistajan www-sivuilta. Näistä tarpeellisia ovat ainoastaan kulloisessakin prosessissa käytettävien tietokantojen ajurit. ETL-työkalun standalone - asennus Tarvittavat ohjelmat Tarvitset seuraavat ohjelmat työkalun käyttöön: (suluissa testatut versiot) MySQL Java SDK Apache Ant (kääntämiseen) Jokin CVS-client (mm. cvs, WinCVS)

4 Sivu 4 (15) Ohjelmaa on testattu Windows 2000, Windows XP ja Linux -käyttöjärjestelmillä. 1. Tietokannan asennus Sovellus tukee tällä hetkellä kaikilta osin ainoastaan MySQL-kantaa. Sovelluksen käyttämiseksi tarvitaan vähintään 1 kanta, mutta useampia voidaan käyttää. Tietokannat pitää luoda ennen sovelluksen ajoa sovelluksen konfiguraatiotiedoston mukaisesti. Testidata voidaan generoida komentoriviparametrina annettavalla sql-komentotiedostolla. 2. Sovellustiedostojen checkout CVS:stä Checkout luo uuden hakemiston nimeltään ETL.Tämä on työkalun juurihakemisto. Hakemisto sisältää mm. seuraavat alihakemistot: language Kuvauskielen schema löytyy täältä lib Tarvittavat ulkoiset Java -kirjastot (mm. Xerces) löytyvät täältä. Tämän hakemiston jar-tiedostot pitää olla CLASSPATH-muuttujassa työkalua ajettaessa. source proc Lähdekoodi ja testiskriptit hakemisto prosessikuvauksille 3. Kääntäminen Tehtyäsi checkout:in, työkalun juurihakemistossa pitäisi olla tiedosto build.xml, joka on Ant:in konfiguraatiotiedosto. Käännös tapahtuu automaattisesti komennolla ant. Kääntämisen jälkeen juurihakemistoon ilmestyy työkalun jar- pakattu versio etltool.jar,sekä uusi hakemisto build, jossa on käännetyt luokat. Ant-skripti tukee parametrejä dist (oletus) init compile clean rakentaa työkalusta jar-paketin tekee tarvittavat työhakemistot kääntämiseen suorittaa kääntämisen poistaa kääntämisen työhakemistot sekä jar- tiedoston 4. Käynnistys Ennen käynnistystä tarkista, että projektitiedostossa viitataan oikeisiin konfiguraatio- ja prosessitiedostoihin. Tarkista, että konfiguraatio vastaa järjestelmääsi (mm. tietokannat) ja että kaikkien XML-tiedostojen schema-polku (xsi:nonamespaceschemalocation) viittaa language -hakemistossa määriteltyyn schemaan. Huomaa, että jos käytät suhteellisia polkuja, ne lasketaan siitä hakemistosta jossa käynnistät työkalun (työkalun juurihakemisto). Tämän jälkeen työkalu käynnistyy komennolla java -jar etltool.jar alustus.sql projekti.xml olettaen, että alustus.sql ja projekti.xml sijaitsevat työkalun juurihakemistossa.

5 Sivu 5 (15) Käynnistysparametrit: alustus.sql projekti.xml alustus.sql alustaa kannan testidatalla ja luo tarvittaessa n kpl tauluja projekti.xml-tiedostossa määritellään viittaus konfiguraatiotiedostoon (tietokantayhteydet) ja prosessikuvaustiedostoon. ETL-työkalun Eclipse - asennus jatkokehitystä varten Tarvittavat ohjelmat Tarvitset seuraavat ohjelmat työkalun käyttöön: (suluissa testatut versiot) MySQL Java SDK Eclipse 3.01 Ohjelmaa on testattu Windows 2000, Windows XP ja Linux -käyttöjärjestelmillä. Tietokannan asennus Asenna MySQL tietokanta ohjeiden mukaan. Varmista, että tietokannan konfiguraatio ja palomuuri sallii TCP/IP -yhteydet ja konfiguroi käytettävät tietokannat ja käyttäjätunnukset vastaamaan prosessikuvauksien konfiguraatiotiedostoa. Sovellustiedostojen checkout CVS:stä Luo uusi projekti työkalua varten, valitse 'Checkout projects from CVS' ja syötä yhteysparametrit. Tämän jälkeen projektin koodi haetaan Eclipsen työympäristöön. Valmistelu Työkalun testaamisessa tarvittavat tiedostot ovat test -paketissa. EtlToolTest1 on työkalun testauksen pääluokka, jota testiajot kutsuvat. Test -paketin alapaketit sisältävät eri prosessiajojen määrittelyt, ja nämä määrittelyt viittaavat skema strom.xsd -tiedostoon, jossa on kuvattu työkalun kuvauskielen XML-schema. Viittaukset ovat tyyppiä../skema strom.xsd, joten ne odottavat skeematiedoston löytyvän test-paketista. Kopioi siis skeema language -hakemistosta test -hakemistoon. Käynnistys Konfiguroi Eclipseen uusi Run-konfiguraatio kuvien 1 ja 2 mukaisesti. Tämän jälkeen työkalu käynnistyy tällä konfiguraatiolla. DocGenTest1 generoi prosessista dokumentaation. Sen run -konfiguraatio laaditaan samalla periaatteella joten ainoa muutos on kuvan 1 Main Class -kenttä.

6 Sivu 6 (15) Uuden tietokantatyypin lisäys työkaluun ETL-työkalua voidaan käyttää useassa eri tietokantatyypissä ja tämä ohje auttaa lisäämään uusia tietokantatyyppejä ETL-työkaluun. Database-luokassa on määritelty staattiset vakiot, joiden perusteella voidaan testata, mitä tietokantatyyppiä tietty yhteys tai taulu edustaa. Mikäli uusi tietokantatyyppi vaatii muutoksia Kuva 1: Eclipsen run-konfiguraatio (1/2)

7 Sivu 7 (15) Kuva 2: Eclipsen run-konfiguraatio (2/2) Database- luokan metodeihin, kannattaa Database-luokka periä. Esimerkkinä tästä on toteutettu PostgreSqlDatabase- luokka, jossa voidaan toteuttaa tarvittavat metodit PostgreSQL- tietokannan vaatimalla sql:llä.databasemanager instantioi oiken luokan konfiguraatiotiedostossa annetun tietokannan tyypin avulla. Implementaatiossa on varauduttu myös alityyppeihin, kuten tiettyihin tietokantaversioihin. Räätälöidyt SQL-lausekkeet toimenpiteissä voidaan tehdä kahdella tavalla: Periytetään vastaava toimenpideluokka jokaiselle tietokannalle erikseen, siten, että ko. toimenpiteen factory-luokka luo ko. Instanssin Jos erot ovat pieniä tehdään if / else if -rakenne edellä mainitun database-type attribuutin perusteella. Export-toimenpideluokassa on esimerkki viimeksi mainitusta, jossa SQL-generoidaan tietokantatyypin mukaan. Toteutuksessa ei ole tällä hetkellä otettu huomioon eri tietotyyppien eroja. Ongelma ilmenee silloin, jos toimenpiteen pitää siirtää tietoa kahden erilaisen tietokannan välillä. Käytännössä tämä pitäisi ratkaista siten, että SqlTableFormat-luokassa määritettäisiin, jonkinlainen looginen tietomalli, joka mapattaisiin fyysisiin attribuuttityyppeihiin toimenpiteissä. Uuden toimenpiteen luominen Toimenpidekomponentin luominen tehdään seuraavasti: Suunnittele komponentti (parametrit, syötteet, tulokset, toiminta, virhetilanteet jne.) ja kirjoita siitä samanlainen kuvaus kuin alla olevissa toimenpidekomponenttien kuvauksissa. Suunnittele samalla, miten toimenpidekomponentti kuvataan kuvauskielessä. Räätälöityjä komponentteja

8 Sivu 8 (15) varten ei yleensä kannata tehdä muutoksia kuvauskieleen. Tee komponentille Java-pakkaus. Jos kyseessä on työkaluun liitettävä yleiskäyttöinen komponentti, pakkaus tulee luoda com.aureolis.etltool.operation-pakkauksen alle. Jos kyseessä on asiakasprojektiin tehty räätälöity komponentti, voidaan käyttää jotain projektikohtaista pakkausnimeä (tai laittaa samaan pakkaukseen muiden toimenpiteiden kanssa). Tee EtlOperationFactory:n toteuttava luokka. Tähän luokkaan ei yleensä pidä laittaa mitään muuttuvia attribuutteja, vaan ainoastaan konfiguraatiotietoa, joka pysyy vakiona olion olemassaolon ajan. Samaa EtlOperationFactory-oliota voidaan käyttää useiden prosessiajojen ajan. Tee EtlOperation:n toteuttava luokka, jonka instanssin EtlOperationFactory.create()-metodi luo. Tätä EtlOperation:n toteuttamaa oliota käytetään vain yhden prosessiajon ajan ja sen jälkeen se hylätään, eikä moottori käytä samaa oliota enää seuraavassa prosessiajossa (vaan luo uuden create()-metodilla). Luokan toteutuksessa kannattaa ottaa mallia olemassaolevista toimenpidekomponenteista ja hyödyntää moottorin palveluita mahdollisimman tehokkaasti. Toimenpiteen liittääminen sovellukseen Toimenpidekomponenttien dynaaminen lataus toteutettiin viimeistelyvaiheen aikana. Koska tätä ei ehditty testata niin kattavasti kuin alkuperäistä toteutusta, haarautettiin CVS-siten, että molemmat versiot ovat käytössä. Molemmissa versioissa ensimmäinen vaihe on lisätä toimenpiteen määrittely kuvauskielen skeemaan. Oletusarvoisesti (luovutetussa versiossa) kuvauskielen validointi skeemaa vastaan on päällä. Tämä voidaan haluttaessa muuttaa XmlProcessParser-luokasta, jolloin muutoksia skeemaan ei enää tarvita. Päähaaran (ETL) alkuperäinen versio Jotta parseri osaa ladata toimenpidekomponentin, täytyy tämä määrittää com.aureolis.etltool.processlanguage.xml.xmlprocessbuilder buildoperation()-metodiin. Dynaaminen versio CVS-haara 'DYNAMIC' Vaihtoehdossa toimenpidefactoryjen toteutusta on muutettu siten, että nämä voivat periä EtlOperationFactory-rajapinnan toteuttamisen sijaan com.aureolis.etltool.operations.abstactoperationfactory-luokan, johon on määritetty kaikille toimenpiteille yhteisiä attribuutteja, kuten viittaus tietokantamanageriin. Prosessiparseria on muutettu siten, että se osaa parseroida mielivaltaisen prosessikuvaustiedoston ja ladata toimenpideluokat konfiguraation perusteella. Ladattavat toimenpiteet määritellään konfiguraatiotiedostossa seuraavasti: <configuration> <operations> <operation name= importsql class= com.aureolis.etltool.operations.importsql.importsqlfactory />.. </operations> </configuration>

9 Sivu 9 (15) Tässä siis name-attribuutti kertoo prosessikuvauksessa käytettävän operaation nimen (XML-tagi) ja class on com.aureolis.etltool.operations.etloperationfactory-rajapinnan toteuttava luokka. Parseri luo prosessikuvauksesta määritellystä konfiguraatiosta com.aureolis.etltool.processlanguage.configuration instanssin, joka sisältää kuvauskielessä määritellyt parametrit puumaisena rakenteena. Ratkaisu on periaatteessa kuvaskieleriippumaton, mutta kopioi kuitenkin XML:n puurakenteen sellaisenaan, mikä on otettava huomioon parametreja käsiteltäessä. Parseri kutsuu toimenpidefactoryn metodiavoid configure(configuration conf) throws ConfigurationException, jossa toimenpide hakee tarvitsemansa parametrit välitetystä Configurationinstanssista. Parametreja ei voinut suoraan asettaa JavaBean/Reflection-tekniikoilla, koska osa toimenpiteistä vaatii yksinkertaisia attribuutteja monimutkaisempia rakenteita määrittelyssään (Esim. ImportCSV:n taulumääritykset). Jatkokehitystä ajatellen tätä voisi kehittää siten, että pyrittäisiin eroon kuvauskielen ja toimenpidekomponenttien välisesti kytkennästä. Yksi mahdollisuus olisi generoida XML-määrityksen perusteella automaattisesti JavaBean-luokka, joka välitetään toimenpiteelle. Sovellukseen on kovakoodattu toteutetut toimenpitekomponentit. Haluttaessa nämä voidaan korvata uusilla em. määrittelyllä. Vähintään copy ja importsql-toimenpiteet on oltava olemassa, koska parseri korvaa importin automaattisesti copy:lla aliprosessin alussa. Kuvauskielen muokkauksen tarkistuslista XML-parseriluokka on toteutettu siten, että kuvauskielen implementaatio voidaan vaihtaa ilman muutostarpeita moottoriin. Suuri osa prosessin rakentamisen toiminnallisuutta on kuitenkin parserin tehtävänä. Parserointiin käytetään validoivaa Apache Xerces DOM-parseria. Parseriluokka vastaa myös toimenpidekomponenttien lataamisesta ja alustamisesta. On tärkeää testata, että kaikki parametrit välittyvät toimenpiteille oikein. Mahdollisesti ongelmat näissä ilmenevät todennäköisesti vasta ajon aikana. 1. Määrittele muutokset kuvauskielen XML-schemaan (language/skema strom.xsd) 2. Lisää muutosten luku/rakentaminen sopiviin processlanguage.xml -paketin luokkiin. 3. Lisää processlanguage.xml.tag -luokkaan elementin/attribuutin määrittely vastaamaan skeemaa. 4. Kopioi muokattu skeema test- pakettiin testien ajamiseksi. Skeeman muokkaukseen on hyvin suositeltavaa käyttää jotain työkalua, jossa skeemaa pystyy muokkaamaan graafisesti, esim. AltovanXMLSpy. Uuden prosessin luonti ETL-prosessi vaatii vähintään kolme XML-tiedostoa jotta se voidaan suorittaa: projektitiedosto, joka kertoo muut käytettävät tiedostot, prosessikuvaus, jossa on määritelty suoritettava ETLprosessi sekä konfiguraatiotiedosto, jossa on ajon tietokanta- ja ajastuskonfiguraatio. Näistä tiedostoista löytyy useita esimerkkejä test- paketin alta. XML-tiedostojen muokkaus sujuu varsin kätevästi, mikäli käytetään sellaista XML-editoria, joka osaa validoida tiedostot skeemaa vasten. Testattuja on mm. XMLSpy sekä Eclipseen integroituva plugin XMLBuddy. Projektitiedostossa voidaan tällä hetkellä määritellä kolme asiaa: konfiguraatiotiedoston polku, prosessikuvauksen polku sekä lokiasetusten polku.

10 Sivu 10 (15) Konfiguraatiotiedostossa määritellään työkalun prosessissa käyttäjämät tietokannat sekä mahdollinen projektin ajastus parametreineen. Projektikuvauksessa määritellään toimenpiteet ja niiden riippuvuudet. Usein toistuvia attribuutteja ovat mm. name source sourcedatabaseid Toimenpiteen nimi. Oltava yksikäsitteinen. Lähdetoimenpiteen nimi Viittaus konfiguraatiotiedostossa määriteltyyn tietokantaan Validoiva XML-editori osaa yleensä myös näyttää skeemaan lisätyt kommentit, jotka kertovat attribuuttien merkityksen. Kun prosessikuvaus on valmis ja XML-editorin mukaan validi, se voidaan ajaa joko EtlToolTest1 -luokalla, joka suorittaa prosessin, tai DocGenTest1 -luokalla, joka laatii prosessista graafisen kuvauksen. Prosessin toimivuuden testaus Valmiista prosessikuvauksesta kannattaa luoda dokumentaatio DocGenTest1 -luokalla. Tästä on hyvä tarkistaa prosessin loogisesti oikea toiminta. Dokumentaatiogeneraattori myös parsii prosessikuvauksen, joten se tarkistaa samalla kuvauksen syntaksin suorittamatta itse prosessia. EtlToolTest2 -luokan avulla voidaan varmistua, että prosessin tulos on halutun kaltainen. Ks. Testien ajaminen. Ideoita SCD-toteutukseen Slowly Changing Dimensions on yksinkertaisinta toteuttaa siten, että Import toimenpiteelle annettavalla parametrillä määritellään taulun SCD-taso. Import toimenpiteet pitävät kopiota tällaisesta SCD:tä sisältävästä taulusta tietovarastoalueella ja lisäävät siihen aikadimension, mikäli lähdekannassa oleva aineisto on muuttunut. Itse ETL-prosessiin import toisi sitten joko snapshotin nykyisestä tilanteesta tai koko aikahistorian sisältävän taulun tietovarastoalueelta. Yksittäisten toimenpiteiden ei tarvitse huolehtia tällöin SCD:n olemassa olosta, mutta prosessin suunnittelijan on huomioitava aikadimension olemassa olo. Virheidenhallinta Virheelliset parametrit toimenpidekomponenteille Jos prosessin ajon aikaisissa argumenteissa on virhe, heittävät toimenpiteet moottorille java.lang.illegalargumentexception. Toistaiseksi moottoriin ei ole toteutettu toiminnallisuutta tämän tilanteen hallintaan. Prosessin ajo jatkuu siltä osin kun se on mahdollista, eli poikkeuksen heittäneestä toimenpiteestä riippuvia toimenpiteitä ei enää voida suorittaa. Virhetaulut Osaan toimenpiteistä on toteutettu tuki virhetauluille. Virhetauluihin tallennetaan data, joka Esimerkkinä on liitos-toimenpiteen erikoistapaukset, eli rivit, joita ei voi liittää annetun ehdon perusteella. Toimenpiteet palauttavat virhetaulut moottorille OperationResult-oliossa (errortablename -> SqlTable). Virhetaulun nimi (errortablename) konfiguroidaan prosessikuvaukseen. Virhetauluja ei

11 Sivu 11 (15) nykyisessä toteutuksessa käsitellä, mutta ne jäävät tietokantaan ajon jälkeen. Ohjeita lokien tulkintaan Järjestelmä käyttää lokien kirjoittamiseen JDK Logging -standardikirjastoa, joka on versiosta 1.4 alkaen osa J2SE:tä. Loki voidaan konfiguroida properties-tyylisellä tekstitiedostolla, tässä määritellään haluttava taso ja tulosteen muoto. Menettely mahdollistaa lokkauskäytännön ajonaikaisen vaihtamisen. Logi alustetaan seuraavasti: LogManager lm = LogManager.getLogManager(); try { // luetaan Properties-tyylinen konfiguraatio tiedostosta InputStream is = new FileInputStream("./build/com/aureolis/etltool/test/logging.properties"); lm.readconfiguration(is); is.close(); } catch (Exception e) { } Lokin käyttäminen Java-luokasta: import java.util.logging.*; public class Toimempide { // haetaan luokkakohtainen Logger-instanssi private static final Logger logger = Logger.getLogger(Toimenpide.class.getName()); // käyttö logger.log(level.severe, fataali virhe ); Käytetyt lokitasot ja selitteet

12 Taso FINER FINE INFO WARNING SEVERE Käyttötarkoitus Debug-tasoinen viesti Debug-tasoinen viesti Informatiivinen, tällä tasolla esimerkiksi SQL-lauseet Varoitus, esim. virhe syötedatassa Vakava virhe, järjestelmän toiminta estyy Sivu 12 (15) Dokumentaatiogeneraattori Dokumentaatiogeneraattori on toteutettu melko erillisenä komponenttina, mutta se käyttää prosessiparserin luomaa tietorakennetta dokumentaation rakentamiseen. Rajapinta on suunniteltu siten, että dokumentaation tuottava toiminnallisuus on vaihdettavissa. Tässä vaiheessa on toteutettu XML-muotoinen tekstitulostus (XMLComposer) lähinnä esimerkin omainen) ja graafinen Javan Swingillä ja JGraph-kirjastolla tehty esitys (JgraphComposer). Dokumentaatiogeneraattoriin on mahdollista liittää kuvaus taulurakenteista, mutta tämä vaatii (luonnollisesti) prosessin ajamisen. Importille ja Exportille kuvauskielessä määritellyt tauluformaatit liitetään mukaan automaattisesti, jos nämä on määritelty. Toteuttamiseen JGraph-kirjasto tuntuu varsin toimivalta, elementteihin voi helposti lisätä mm. eventtejä, jolloin kirjasto voisi olla hyvä lähtökohta graafisen käyttöliittymän tekemiseen prosessin määrittelyyn. Jatkokehitys ideana prosessikuvaukseen ulkoasu pitäisi saada toimimaan, Jgraphiin liittyy JgraphAddons-paketti, jossa on valmiita layoyt-algoritmeja. Näitä ei kuitenkaan ole saatu toimivaan, vaan koko prosessiverkko tulee päällekäin. Testaus Testien luonti Jokaista yksittäistä toimenpidekomponenttia sekä jokaista tiettyä toiminnallisuutta kohden on luotu / luodaan prosessikuvaus, joka kattaa toimenpiteen toimintavaihtoehdot, lähdeaineiston ja odotetun lopputuloksen. Hyväksytysti suoritetut prosessikuvaukset kootaan yhteen prosessikuvaukseen. Kun muutoksia ETL-työkaluun tehdään, tulee tämä koottu prosessikuvaus ajaa hyväksytysti ennen muutoksien viemistä versionhallintaan. Prosessikuvausten teko tapahtuu normaalisti ohjeen mukaan. Tietokantoihin luotava aineisto tehdään seuraavasti: Testausympäristöön luodaan setup-skripti, jossa määritellään kantaan luotavat taulut ja niihin sisällytettävä testidata. Setup-skriptissä määritellään myös kannan nimi, johon taulut ja data luodaan. Yhdellä skriptillä voidaan alustaa useita tietokantoja. Skriptin alussa on rivi :kannannimi, joka kertoo missä kannassa seuraavat SQL-lauseet suoritetaan. Kukin SQL-lause on oltava omalla rivillään, ts. esim. CREATE TABLE-lausetta ei saa jakaa useammalle riville. Esimerkki: :lahdekanta

13 Sivu 13 (15) CREATE TABLE Tyontekija (sotu CHAR(11), sukunimi VARCHAR(15), etunimi VARCHAR(10), palkka INTEGER, PRIMARY KEY (sotu)); CREATE TABLE Osasto (ot INTEGER, nimi VARCHAR(20), PRIMARY KEY (ot)); CREATE TABLE Tyossa (ot INTEGER, sotu CHAR(11), PRIMARY KEY (ot, sotu)); INSERT INTO Tyontekija VALUES (' G', 'Silakka', 'Seppo', 2630); INSERT INTO Tyontekija VALUES (' R', 'Kankkunen', 'Kalle', 1800); INSERT INTO Tyontekija VALUES (' ', 'Kesà mies', 'Keijo', 2370); INSERT INTO Tyontekija VALUES (' ', 'Vilkas', 'Ville', 2030); INSERT INTO Osasto VALUES (1, 'Hallinto'); INSERT INTO Osasto VALUES (2, 'Tuotanto'); INSERT INTO Osasto VALUES (3, 'Myynti'); INSERT INTO Osasto VALUES (4, 'Markkinointi'); INSERT INTO Osasto VALUES (5, 'Foobar'); INSERT INTO Tyossa VALUES (1, ' G'); INSERT INTO Tyossa VALUES (1, ' '); INSERT INTO Tyossa VALUES (2, ' R'); INSERT INTO Tyossa VALUES (3, ' '); INSERT INTO Tyossa VALUES (2, ' '); INSERT INTO Tyossa VALUES (8, ' '); Tietokantoihin luotava aineisto tehdään seuraavasti: Jokainen taulu tarkastetaan omalla taulu-sektiollaan. DATABASE-komento määrittää käytettävän tietokannan testiaineistonluontitiedoston tavoin. TABLE-sektio sisältää seuraavat komennot: - NAME määrittää taulun nimen - FIELDS määrittää, minkä tyyppisiä taulujen sarakkeet pitää olla - PRIMARY_KEY määrittää, mitkä sarakkeet kuuluvat primääriavaimeen - ROW määrittää minkälainen rivi taulustä täytyy löytyä Kaikki komennot ovat vapaaehtoisia, paitisi NAME tarvitaan, mikäli muita komentoja aiotaan käyttää. Komentojen parametrit erotellaan välilyönneillä tai sarkaimilla. Jos parametri sisältää välilyönnin, on käytettävä lainausmerkkejä. Lainausmerkit eivät sisälly parametrin arvoon. Esimerkki: DATABASE tietovarasto TABLE BEGIN NAME TyontekijoidenOsastot FIELDS sotu:varchar(11) sukunimi:varchar(15) etunimi:varchar(10) palkka:int ot:int nimi:varchar(20) # PRIMARY_KEY ot sot ROW R Kankkunen Kalle Tuotanto ROW Vilkas Ville Myynti ROW Vilkas Ville Tuotanto TABLE END Testien ajaminen Testit ajetaan EtlToolTest1 ja EtlToolTest2 työkalulla. EtlToolTest1 ottaa parametrikseen prosessikuvauksen nimen(esim. Testprocess.xml) ja lähdeaineiston luovan setupskriptin (esim. setup1.sql). EtlToolTest2 ottaa parametrikseen prosessikuvauksen nime( esim. Testprocess.xml), lähdeaineiston luovan setupskriptin (esim. setup1.sql) ja tarkistustiedoston nimen (esim. check.sql).

14 Sivu 14 (15) Hakemistorakenne Jokaiselle toimenpiteelle luodaan versionhallintajärjestelmään alihakemisto, kuten test/join, ja koottu testiprosessi hakemistoon test/all Hakemistot sisältävät esim. seuraavat tiedostot: configuration.xml Paikalinen, ei versionhallinnassa join1.xml Prosessikuvaus logging.properties Paikallinen, ei versionhallinnassa project.xml Projektikuvaus, jossa viittaukset prosessikuvaukseen ja konfiguraatioon setup1.sql Testausympäristön pysytykseen käytettävä tiedosto Xml-tiedostoissa olevat viittaukset skeemaan ovat../skema storm.xsd. Em. tiedostojen luonti on kuvattu aikaisemmin tässä dokumentissa. Ongelmatilanteiden selvittely Ohjelman suorituksen ongelmatilanteet Feb 21, :49:03 PM com.aureolis.etltool.processlanguage.xml.xmlprocessparser parsefile SEVERE: Unexpected parsing error: [2, 108] error while parsing <etl xmlns:xsi=" xsi:nonamespaceschemalocation="skema strom.xsd"> Virhe johtuu siitä, ettei XML-parseri löydä prosessikuvaustiedostossa määriteltyä skeemaa. Tarkista, että skema strom.xsd löytyy odotetusta paikasta, tässä esimerkissä samasta hakemistosta mistä työkalu on käynnistetty. Huomaa myös, että hakemistojen erotinmerkkinä on käytettävä Unixtyyliin / -merkkiä eikä Windows -tyylistä \ -merkkiä. Kannattaa myös harkita skeeman laittamista www-palvelimelle, jolloin siihen voi viitata joka paikasta samalla tavalla. Jatkokehitysideoita Moottori Rinnakkainen suoritus Moottori toimii tällä hetkellä siten, että se käynnistää kullakin hetkellä niin monta toimenpidettä yhtäaikaiseen ajoon, kun mahdollista. Tämä voi muodostua ongelmaksi monimutkaisessa prosessissa ja olisi mahdollisesti hyvä luoda jonkinlainen Thread-pool, joka hallinnoi yhtäaikaisesti ajossa olevia toimenpiteitä. Toimenpiteiden ajon seuranta Toimenpiderajapinnoissa on määritelty metodit (esim. getprogress()), joilla voidaan seurata

15 Sivu 15 (15) prosessin suorituksen edistymistä. Näitä ei kuitenkaan ole toistaiseksi toteutettu. Prosessin tilan seurata on ajateltu toteutettavan siten, että soveltuvilta osin toimenpide ylläpitää jonkinlaista laskuria välillä [0,1], jonka arvo pyydettäessä palautetaan moottorille. Jonkinlainen timeout-arvo toimenpiteille olisi varmasti myös hyvä mahdollisen jumiutumisen varalta. Toimenpiteet Indeksien käyttö Toimnepiteiden tukea indekseille pitäisi kehittää suorituskyvyn lisäämiseksi. Import-toimenpiteet osaavat lukea ja luoda indeksiejä. Mutta toimenpiteiden pitäisi osata käsitellä näitä järjevästi, mm. appendin osalta. Virhdeidenhallinta Virheidenhallintaa pitää parantaa, erityisesti virhetaulujen osalta, joita ei ole toteutettu toistaiseksi kuin Join ja Append-toimenpiteisiin. Convert/TypeCheck Toimenpide tarvitaan eri tietokantatyyppien tukemiseen samassa prosessissa, koska tietotyypit eroavat merkittävästi eri tietokannoissa. Sarakkeiden tyypit hallitaan siten, että jokaisella SqlTableinstanssilla on SqlTableFormat-attribuutti, joka kuvaa taulun sarakkeiden nimet, niiden tietotyypit ja mahdolliset indeksit. Sarakkeen tyyppi tallennetaan suoraan String-tyyppisenä joko sen mukaan mitä prosessikuvauksessa on määritelty tai mitä JDBC-ajuri palauttaa. Arkkitehtuurin perusteella tuntuisi, että tämä olisi parempi toteuttaa esim. moottorin palveluna, jota toimenpiteet kutsuvat, kuin erillisenä toimenpiteenä. Syynä tähän on se, että toimintoa tarvitaan silloin, kun kopioidaan dataa kahden tietokannan välillä. SqlTable-instanssi viittaa suoraan kantaan, eikä siihen voida tehdä muutoksia, ennen kuin se syöteään datan lukevalle toimenpiteelle. Toiminto pitää siis suorittaa suoraan esim. export tai copy-toimenpiteestä Toteutus Luodaan jonkinlainen konfiguroitava taulukko, joka määrittelee tietokannnoittain sarakkaiden vastaavuudet. Esim (mysql) tinyint = oracle num(2). Toiminto lisätään moottorin palveluksi siten, että EngineServies-rajapintaan lisätään metodi taulun formaatin konvertoimiseksi. Metodi SqlTableFormat-instanssin, joka sisältää muunnetut saraketyypit. Toimenpide tietää ajonaikana käsittelemiensä tietokantojen tyypit (voidaan kysyä SqlTable.getDatabase()-luokalta) ja osaa välittää tarvittavat parametrit Convert/TypeCheckille. Toimenpiteen vastuulle jää tämän jälkeen mahdollisten epäyhteensopivuuksien tunnistaminen syötedatassa.

Kehitysohje. ETL-työkalu. ExtraTerrestriaLs / Aureolis Oy

Kehitysohje. ETL-työkalu. ExtraTerrestriaLs / Aureolis Oy Kehitysohje ETL-työkalu Versio Pvm Tekijä Kuvaus 0.1 15.1.2005 Timo Sallinen Ensimmäinen versio 0.2 26.1.2005 Timo Sallinen Täydenetty pohjaa 0.3 06.02.2005 Mika Suvanto Pieniä täydennyksiä ja oikolukua

Lisätiedot

T-76.115 Testiraportti TR-3. ETL-työkalu

T-76.115 Testiraportti TR-3. ETL-työkalu T-76.115 Testiraportti TR-3 ETL-työkalu ExtraTerrestriaLs Versio Päivämäärä Tekijä Kuvaus 1.0 14.03.05 Risto Kunnas Ensimmäinen versio 1.1 15.03.05 Risto Kunnas Korjauksia Sivu 1 / 14 Sisällysluettelo

Lisätiedot

T-76.115 Testiraportti TR-2. ETL-työkalu

T-76.115 Testiraportti TR-2. ETL-työkalu T-76.115 Testiraportti TR-2 ETL-työkalu ExtraTerrestriaLs Versio Päivämäärä Tekijä Kuvaus 1.0 07.02.05 Risto Kunnas Ensimmäinen versio 1.1 08.02.05 Risto Kunnas Lisätty liitteet Sivu 1 / 11 Sisällysluettelo

Lisätiedot

T Testitapaukset TC-1

T Testitapaukset TC-1 T-76.115 Testitapaukset TC-1 ETL-työkalu ExtraTerrestriaLs / Aureolis Oy Versio Päivämäärä Tekijä Muutos 1.0 18.11.2004 Risto Kunnas Testitapaukset ensimmäistä iteraatiota varten 1.1 26.11.2004 Risto Kunnas

Lisätiedot

Valppaan asennus- ja käyttöohje

Valppaan asennus- ja käyttöohje Versio Päiväys Muokkaaja Kuvaus 0.9 16.2.2006 Tuukka Laakso Korjattu versio 0.1 Antti Kettunen Alustava versio Sisällysluettelo 1 Johdanto...2 2 Valppaan asennus...3 2.1 Valppaan kääntäminen...3 2.2 Valmiiksi

Lisätiedot

ETL-DEMO. Esimerkki ETL-kuvauskielen käyttöstä

ETL-DEMO. Esimerkki ETL-kuvauskielen käyttöstä ETL-DEMO Esimerkki ETL-kuvauskielen käyttöstä Lähtötilanne Organisaation operatiivisessa kannassa dataa, jota halutaan varastoida ja jalostaa Päätetään mihin muotoon jalostettu data halutaan tietovarastossa

Lisätiedot

Tekninen määrittely. ETL-työkalu. ExtraTerrestriaLs / Aureolis Oy

Tekninen määrittely. ETL-työkalu. ExtraTerrestriaLs / Aureolis Oy Tekninen määrittely ETL-työkalu ExtraTerrestriaLs / Aureolis Oy Versio Päivämäärä Tekijä Muutos 0.1 13.11.2004 Timo Sallinen Ensimmäinen versio 0.2 25.11.2004 Jani Honkanen ETL-moottori 0.3 26.11.2004

Lisätiedot

Tekninen määrittely. ETL-työkalu. ExtraTerrestriaLs / Aureolis Oy

Tekninen määrittely. ETL-työkalu. ExtraTerrestriaLs / Aureolis Oy Tekninen määrittely ETL-työkalu ExtraTerrestriaLs / Aureolis Oy Versio Päivämäärä Tekijä Muutos 0.1 13.11.2004 Timo Sallinen Ensimmäinen versio 0.2 25.11.2004 Jani Honkanen ETL-moottori 0.3 26.11.2004

Lisätiedot

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

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä: Linux-harjoitus 6 Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä: http://www.mysql.com/, MySQL-tietokantaohjelman kotisivu. http://www.mysql.com/doc/en/index.html,

Lisätiedot

Tekninen määrittely. ETL-työkalu. ExtraTerrestriaLs / Aureolis Oy

Tekninen määrittely. ETL-työkalu. ExtraTerrestriaLs / Aureolis Oy Tekninen määrittely ETL-työkalu ExtraTerrestriaLs / Aureolis Oy Versio Päivämäärä Tekijä Muutos 0.1 13.11.2004 Timo Sallinen Ensimmäinen versio 0.2 25.11.2004 Jani Honkanen ETL-moottori 0.3 26.11.2004

Lisätiedot

Simulaattorin asennus- ja käyttöohje

Simulaattorin asennus- ja käyttöohje Linux ja Windows XP Versio Päiväys Muokkaaja Kuvaus 0.2 16.2.2006 Mikko Halttunen Katselmoinin jälkeen 0.1 13.2.2006 Mikko Halttunen Alustava versio Sisällysluettelo 1 Johdanto... 3 2 Simulaattorin asennus...

Lisätiedot

8. Näppäimistöltä lukeminen 8.1

8. Näppäimistöltä lukeminen 8.1 8. Näppäimistöltä lukeminen 8.1 Sisällys Arvojen lukeminen näppäimistöltä Java-kielessä. In-luokka. In-luokka, käännös ja tulkinta Scanner-luokka. 8.2 Yleistä Näppäimistöltä annettujen arvojen (syötteiden)

Lisätiedot

CVS. Kätevä väline usein päivitettävien tiedostojen, kuten lähdekoodin, hallitsemiseen

CVS. Kätevä väline usein päivitettävien tiedostojen, kuten lähdekoodin, hallitsemiseen CVS Versionhallintajärjestelmä Kätevä väline usein päivitettävien tiedostojen, kuten lähdekoodin, hallitsemiseen Käytetään komentoriviltä, myös graafisia käyttöliittymiä saatavilla CVS Kaikki tiedostot

Lisätiedot

8. Näppäimistöltä lukeminen 8.1

8. Näppäimistöltä lukeminen 8.1 8. Näppäimistöltä lukeminen 8.1 Sisällys Arvojen lukeminen näppäimistöltä Java-kielessä. In-luokka. In-luokka, käännös ja tulkinta Scanner-luokka. 8.2 Yleistä Näppäimistöltä annettujen arvojen (syötteiden)

Lisätiedot

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas Tiedonhallinnan perusteet Viikko 1 Jukka Lähetkangas Kurssilla käytävät asiat Tietokantojen toimintafilosofian ja -tekniikan perusteet Tiedonsäilönnän vaihtoehdot Tietokantojen suunnitteleminen internetiä

Lisätiedot

5. HelloWorld-ohjelma 5.1

5. HelloWorld-ohjelma 5.1 5. HelloWorld-ohjelma 5.1 Sisällys Lähdekoodi. Lähdekoodin (osittainen) analyysi. Lähdekoodi tekstitiedostoon. Lähdekoodin kääntäminen tavukoodiksi. Tavukoodin suorittaminen. Virheiden korjaaminen 5.2

Lisätiedot

LINUX-HARJOITUS, MYSQL

LINUX-HARJOITUS, MYSQL LINUX-HARJOITUS, MYSQL Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä: http://www.mysql.com/, MySQL-tietokantaohjelman kotisivu. http://www.mysql.com/doc/en/index.html,

Lisätiedot

Ylläpitodokumentti. Ohjelmistotuotantoprojektin tietojärjestelmä OhtuTie

Ylläpitodokumentti. Ohjelmistotuotantoprojektin tietojärjestelmä OhtuTie Ylläpitodokumentti Ohjelmistotuotantoprojektin tietojärjestelmä OhtuTie Helsinki 16.7.2004 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti

Lisätiedot

4. Luokan testaus ja käyttö olion kautta 4.1

4. Luokan testaus ja käyttö olion kautta 4.1 4. Luokan testaus ja käyttö olion kautta 4.1 Olion luominen luokasta Java-kielessä olio määritellään joko luokan edustajaksi tai taulukoksi. Olio on joukko keskusmuistissa olevia tietoja. Oliota käsitellään

Lisätiedot

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++? JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: http://java.sun.com/docs/books/tutorial/index.html Vesterholm, Kyppö: Java-ohjelmointi,

Lisätiedot

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä 12.1 12.2 12.3 12.4

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä 12.1 12.2 12.3 12.4 Sisällys 12. Näppäimistöltä lukeminen Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä.. Luetun arvon tarkistaminen. Tietovirrat ja ohjausmerkit. Scanner-luokka.

Lisätiedot

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla Viimeksi muokattu 5. toukokuuta 2012 Maastotietokannan torrent-jakeluun sisältyy yli 5000 zip-arkistoa,

Lisätiedot

Taulukot. Jukka Harju, Jukka Juslin 2006 1

Taulukot. Jukka Harju, Jukka Juslin 2006 1 Taulukot Jukka Harju, Jukka Juslin 2006 1 Taulukot Taulukot ovat olioita, jotka auttavat organisoimaan suuria määriä tietoa. Käsittelylistalla on: Taulukon tekeminen ja käyttö Rajojen tarkastus ja kapasiteetti

Lisätiedot

Tietokannat II -kurssin harjoitustyö

Tietokannat II -kurssin harjoitustyö Tietokannat II -kurssin harjoitustyö Jyri Lehtonen (72039), jkoleh@utu.fi Azad Hajipour (72187), azhaji@utu.fi 10.6.2007 Sisältö 1. Tietokannan kuvaus... 1 1.1 Tietokannan rakenne... 1 1.2 Relaatiokaava

Lisätiedot

Ohje kehitysympäristöstä. Dokumentti: Ohje kehitysympäristöstä.doc Päiväys: 15.03.2005 Projekti : AgileElephant

Ohje kehitysympäristöstä. Dokumentti: Ohje kehitysympäristöstä.doc Päiväys: 15.03.2005 Projekti : AgileElephant AgilElephant Tekijä: Petri Kalsi Omistaja: ElectricSeven Dokumentti:.doc Päiväys: 15.03.2005 Aihe: Sivu 1 of 6 Dokumenttihistoria Muutoshistoria Revision Revision Yhteenveto muutoksista Revision tekijä

Lisätiedot

Rajapinta (interface)

Rajapinta (interface) 1 Rajapinta (interface) Mikä rajapinta on? Rajapinta ja siitä toteutettu luokka Monimuotoisuus ja dynaaminen sidonta Rajapinta vs periytyminen 1 Mikä rajapinta on? Rajapintoja käytetään, kun halutaan määritellä

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2011 1 / 39 Kertausta: tiedoston avaaminen Kun ohjelma haluaa lukea tai kirjoittaa tekstitiedostoon, on ohjelmalle

Lisätiedot

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

Johdanto Javaan ja tietokantojen käsittelyyn Java Database Connectivity (JDBC) HAAGA-HELIA ICT1TA006: Ohjelmointi 1 /5 Johdanto Javaan ja tietokantojen käsittelyyn Java Database Connectivity (JDBC) (Lähteet: Oracle java jdbc Tutorial, Arvo Lipitsäinen: Tietokannan käsittely JDBC:n

Lisätiedot

Ohjelmisto on selainpohjaisen käyttöliittymän tarjoava tietokantajärjestelmä merikotkien seurantaan WWF:n Merikotka-työryhmän tarpeisiin.

Ohjelmisto on selainpohjaisen käyttöliittymän tarjoava tietokantajärjestelmä merikotkien seurantaan WWF:n Merikotka-työryhmän tarpeisiin. TIETOKANTA MERIKOTKIEN SEURANTAAN Käyttöohje Versiohistoria: Versio Päivämäärä Kuvaus Tekijä 1.0 11.12.2007 Ensimmäinen luonnos Janne Piippo 2.0 13.12.2007 Virallinen verio Janne Piippo HELSINGIN YLIOPISTO

Lisätiedot

Osio 4: Tietovirrat. Properties- eli ominaisuustiedostot Logger: lokitietojen käsittely

Osio 4: Tietovirrat. Properties- eli ominaisuustiedostot Logger: lokitietojen käsittely Properties- eli ominaisuustiedostot Logger: lokitietojen käsittely 1 Ominaisuudet Kun tutkimme työasemapohjaisia sovelluksiamme, tarvitaan joskus tietoa: mikä on käyttöjärjestelmä mikä on käytössä oleva

Lisätiedot

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

Tietokanta.java Luokka tarjoaa välineet tietokannan lukemiseen. Haetuista tiedoista muodostetaan kurssi- ja opetus-olioita. Arkkitehtuurikuvaus Käytössä olevat java-luokat: Kansio: /WEB_INF/classes/ - käännetyt luokat Kansio: /WEB_INF/src/ - lähdekoodi custom_pojos: Kurssi.java Java-luokka, jonka sisältö vastaa tietokannassa

Lisätiedot

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

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences TIEDONHALLINTA - SYKSY 2011 Kurssikoodi: Saapumisryhmä: Luento 11 TU00AA48-2002 TU10S1E Hannu Markkanen 22.11.2011 9/10/12 Helsinki Metropolia University of Applied Sciences 1 Indeksit Indeksit Taulun

Lisätiedot

12. Näppäimistöltä lukeminen 12.1

12. Näppäimistöltä lukeminen 12.1 12. Näppäimistöltä lukeminen 12.1 Sisällys Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä. In-luokka. Luetun arvon tarkistaminen. Tietovirrat ja ohjausmerkit.

Lisätiedot

5. HelloWorld-ohjelma 5.1

5. HelloWorld-ohjelma 5.1 5. HelloWorld-ohjelma 5.1 Sisällys Lähdekoodi. Lähdekoodin (osittainen) analyysi. Lähdekoodi tekstitiedostoon. Lähdekoodin kääntäminen tavukoodiksi. Tavukoodin suorittaminen. Virheiden korjaaminen 5.2

Lisätiedot

Sisältö. 2. Taulukot. Yleistä. Yleistä

Sisältö. 2. Taulukot. Yleistä. Yleistä Sisältö 2. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.1 2.2 Yleistä

Lisätiedot

T-76.115 Vaatimusmäärittelydokumentti. ETL-työkalu

T-76.115 Vaatimusmäärittelydokumentti. ETL-työkalu T-76.115 Vaatimusmäärittelydokumentti ETL-työkalu (Aureolis Oy) Sivu 1 (20) T-76.115 Vaatimusmäärittelydokumentti ETL-työkalu ExtraTerrestriaLs Versio Pvm Tekijä 0.1 19.10.2004 Jani Malmi Alustava versio

Lisätiedot

Luento 4. Timo Savola. 21. huhtikuuta 2006

Luento 4. Timo Savola. 21. huhtikuuta 2006 UNIX-käyttöjärjestelmä Luento 4 Timo Savola 21. huhtikuuta 2006 Osa I Shell Lausekkeet Komentoriville kirjotettu komento on lauseke echo "foo" echo $USER MUUTTUJA=1 ls -l Rivinvaihto

Lisätiedot

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

HSMT Tietokannoista. Ville Leppänen. HSMT, c Ville Leppänen, IT, Turun yliopisto, 2008 p.1/32 HSMT Tietokannoista Ville Leppänen HSMT, c Ville Leppänen, IT, Turun yliopisto, 2008 p.1/32 Missä mennään... 1. Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista (1h)

Lisätiedot

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

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet A271117, Tietokannat Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: Leon Atkinson: core MySQL Ari Hovi: SQL-opas TTY:n tietokantojen perusteet-kurssin

Lisätiedot

Liite 1: KualiKSB skenaariot ja PoC tulokset. 1. Palvelun kehittäjän näkökulma. KualiKSB. Sivu 1. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu

Liite 1: KualiKSB skenaariot ja PoC tulokset. 1. Palvelun kehittäjän näkökulma. KualiKSB. Sivu 1. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu Liite 1: skenaariot ja PoC tulokset 1. Palvelun kehittäjän näkökulma Tilanne Vaatimus Ongelma jos vaatimus ei toteudu Palvelun uusi versio on Palveluiden kehittäminen voitava asentaa tuotantoon vaikeutuu

Lisätiedot

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Tällä kurssilla on tutustuttu ohjelmistojen mallintamiseen oliomenetelmiä ja UML:ää käyttäen Samaan aikaan järjestetyllä kurssilla on käsitelty

Lisätiedot

P e d a c o d e ohjelmointikoulutus verkossa

P e d a c o d e ohjelmointikoulutus verkossa P e d a c o d e ohjelmointikoulutus verkossa Java-kielen perusteet Teoria ja ohjelmointitehtävät Java-kielen perusteet 3 YLEISKATSAUS KURSSIN SISÄLTÖIHIN 10 JAVA-KIELEN PERUSTEET 10 OPISKELUN ALOITTAMINEN

Lisätiedot

Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } }

Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } } Yksikkötestauksella tarkoitetaan lähdekoodiin kuuluvien yksittäisten osien testaamista. Termi yksikkö viittaa ohjelman pienimpiin mahdollisiin testattaviin toiminnallisuuksiin, kuten olion tarjoamiin metodeihin.

Lisätiedot

Eclipse 3.2 pikku opas versio 1.0. Esittely Uuden projektin perustaminen Sovelluksen luominen Koodin siistiminen Vinkkejä

Eclipse 3.2 pikku opas versio 1.0. Esittely Uuden projektin perustaminen Sovelluksen luominen Koodin siistiminen Vinkkejä Anne Benson/Tanja Bergius Opintojakson ict1td002 käyttöön Sivu 1 / 13 Eclipse 3.2 pikku opas versio 1.0 Ohjeen sisältö: Esittely Uuden projektin perustaminen Sovelluksen luominen Koodin siistiminen Vinkkejä

Lisätiedot

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma. 2. Taulukot 2.1 Sisältö Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.2 Yleistä

Lisätiedot

Käyttöohje. Boa Open Access. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Käyttöohje. Boa Open Access. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Käyttöohje Boa Open Access Helsinki 5.5.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Ilmari Heikkinen

Lisätiedot

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

Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot) SQL sisältää operaatiot tietokannan sisällön muodostamiseen ja ylläpitoon: insert - uusien rivien vienti tauluun delete - rivien poisto update - rivien muutos 1 Insert lauseella on kaksi muotoa: insert

Lisätiedot

SQLite selvitysraportti. Juha Veijonen, Ari Laukkanen, Matti Eronen. Maaliskuu 2010

SQLite selvitysraportti. Juha Veijonen, Ari Laukkanen, Matti Eronen. Maaliskuu 2010 SQLite selvitysraportti Juha Veijonen, Ari Laukkanen, Matti Eronen Maaliskuu 2010 Opinnäytetyö Kuukausi Vuosi 1 SISÄLTÖ 1. YLEISTÄ SQLITE:STA... 2 2. HISTORIA... 2 3. SQLITEN KÄYTTÖ... 3 3.1 SQLiten asennus

Lisätiedot

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen Pedacode Pikaopas Java-kehitysympäristön pystyttäminen Pikaoppaan sisältö Pikaoppaassa kuvataan, miten Windowstyöasemalle asennetaan Java-ohjelmoinnissa tarvittavat työkalut, minkälaisia konfigurointeja

Lisätiedot

Toinen harjoitustyö. ASCII-grafiikkaa 2017

Toinen harjoitustyö. ASCII-grafiikkaa 2017 Toinen harjoitustyö ASCII-grafiikkaa 2017 Yleistä Tehtävä: tee Javalla ASCII-merkkeinä esitettyä grafiikkaa käsittelevä ASCIIArt17-ohjelma omia operaatioita ja taulukoita käyttäen. Työ tehdään pääosin

Lisätiedot

Tapahtumakalenteri & Jäsentietojärjestelmä Ylläpito

Tapahtumakalenteri & Jäsentietojärjestelmä Ylläpito Tapahtumakalenteri & Jäsentietojärjestelmä Ylläpito Henri Kinnunen, Seppo Tompuri, Tero Malkki, Matti Heiskanen, Tommi Rönkönharju, Tuomas Valkeapää Sisällysluettelo 1. Alkusanat.2 2. Asennusohje..2 3.

Lisätiedot

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Matti Luukkainen 10.12.2009 Tässä esitetty esimerkki on mukaelma ja lyhennelmä Robert Martinin kirjasta Agile and Iterative Development löytyvästä

Lisätiedot

18 LIITTYMÄT MUIHIN JÄRJESTELMIIN

18 LIITTYMÄT MUIHIN JÄRJESTELMIIN 18 MUIHIN JÄRJESTELMIIN Prospekti DAFOon rakennettu liittymiä muiden ohjelmiston toimittajien järjestelmiin. Tässä yhteydessä ei tarkoiteta siirtotiedoston muodostamista, kuten reskontraan siirto tai lappujen

Lisätiedot

Hakemistojen sisällöt säilötään linkitetyille listalle.

Hakemistojen sisällöt säilötään linkitetyille listalle. Harjoitustyö 1 Harjoitustyö Tehtävä: ohjelmoi Java-kielellä komentoikkunaa (komentotulkkia, komentoriviä) simuloiva olioperustainen ohjelma. Hakemistojen sisällöt säilötään linkitetyille listalle. Työ

Lisätiedot

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

Subversion-ohje. Linux Traffic Control-käyttöliittymä Ryhmä paketti2 Subversion-ohje Linux Traffic Control-käyttöliittymä Ryhmä paketti2 Helsinki 1.11.2004 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti

Lisätiedot

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

Ylläpitodokumentti. Boa Open Access. Helsinki 2.5.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Ylläpitodokumentti Boa Open Access Helsinki 2.5.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Ilmari

Lisätiedot

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14 Arkkitehtuurikuvaus Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy Ryhmä 14 Muutoshistoria Versio Pvm Päivittäjä Muutos 0.4 1.11.2007 Matti Eerola 0.3 18.10.2007 Matti Eerola 0.2

Lisätiedot

Joonas Ruotsalainen GIT PIKAOPAS. Tutkielma 2011

Joonas Ruotsalainen GIT PIKAOPAS. Tutkielma 2011 1 Joonas Ruotsalainen GIT PIKAOPAS Tutkielma 2011 2 SISÄLTÖ 1. JOHDANTO... 3 2. ASENTAMINEN... 4 3. KÄYTTÖ... 4 3.1 Perusasetukset... 4 3.2 Git:n ottaminen käyttöön projektissa... 5 3.3 Tiedostojen lisääminen

Lisätiedot

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit IDL - proseduurit 25. huhtikuuta 2017 Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,

Lisätiedot

Amazon Web Services (AWS) on varmaankin maailman suosituin IaaS-tarjoaja. Lisäksi se tarjoaa erilaisia PaaS-kategoriaan kuuluvia palveluita.

Amazon Web Services (AWS) on varmaankin maailman suosituin IaaS-tarjoaja. Lisäksi se tarjoaa erilaisia PaaS-kategoriaan kuuluvia palveluita. 1 2 Amazon Web Services (AWS) on varmaankin maailman suosituin IaaS-tarjoaja. Lisäksi se tarjoaa erilaisia PaaS-kategoriaan kuuluvia palveluita. 3 4 Region vastaa palvelun fyysistä sijaintipaikkaa (AWS

Lisätiedot

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista Sisällys 1. Omat operaatiot Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma

Lisätiedot

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014 18. syyskuuta 2014 IDL - proseduurit Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,

Lisätiedot

ASENNUS- JA KÄYTTÖOHJE

ASENNUS- JA KÄYTTÖOHJE ASENNUS- JA KÄYTTÖOHJE YKSIKKÖHINTA SOPIMUKSEN TOTEUTUNEET MÄÄRÄT-SOVELLUS CMPRO5 VERSIO 2.8 PÄIVITETTY HEINÄKUU 2010 COPYRIGHT 2010 ARTEMIS FINLAND OY. ALL RIGHTS RESERVED. KÄYTTÖOHJE SIVU 2 (12) SISÄLLYSLUETTELO

Lisätiedot

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä Pekka Ryhänen & Erkki Pesonen 2002 BlueJ:n käyttö Nämä ohjeet on tarkoitettu tkt-laitoksen mikroluokan koneilla tapahtuvaa käyttöä varten. Samat asiat pätevät myös muissa luokissa ja kotikäytössä, joskin

Lisätiedot

Olio-ohjelmointi Javalla

Olio-ohjelmointi Javalla 1 Olio-ohjelmointi Javalla Olio-ohjelmointi Luokka Attribuutit Konstruktori Olion luominen Metodit Olion kopiointi Staattinen attribuutti ja metodi Yksinkertainen ohjelmaluokka Ohjelmaluokka 1 Olio-ohjelmointi

Lisätiedot

JUnit ja EasyMock (TilaustenKäsittely)

JUnit ja EasyMock (TilaustenKäsittely) OHJELMISTOJEN TESTAUS JA HALLINTA Syksy 2015 / Auvo Häkkinen JUnit ja EasyMock (TilaustenKäsittely) Tehtävässä tarvittava koodi löytyy osoitteella http://users.metropolia.fi/~hakka/oth/mockesimerkki.zip

Lisätiedot

Sisältö. 22. Taulukot. Yleistä. Yleistä

Sisältö. 22. Taulukot. Yleistä. Yleistä Sisältö 22. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko metodin parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 22.1 22.2 Yleistä

Lisätiedot

1. Omat operaatiot 1.1

1. Omat operaatiot 1.1 1. Omat operaatiot 1.1 Sisällys Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma

Lisätiedot

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen Metodit Metodien määrittely Metodin parametrit ja paluuarvo Metodien suorittaminen eli kutsuminen Metodien kuormittaminen 1 Mikä on metodi? Metodi on luokan sisällä oleva yhteenkuuluvien toimintojen kokonaisuus

Lisätiedot

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti: 1 (7) Tiedon lukeminen näppäimistöltä Scanner-luokan avulla Miten ohjelma saa käyttöönsä käyttäjän kirjoittamaa tekstiä? Järjestelmässä on olemassa ns. syöttöpuskuri näppäimistöä varten. Syöttöpuskuri

Lisätiedot

Pedacode Pikaopas. Web-sovelluksen luominen

Pedacode Pikaopas. Web-sovelluksen luominen Pedacode Pikaopas Web-sovelluksen luominen Pikaoppaan sisältö Pikaoppaassa kuvataan, miten Netbeans-työkalulla luodaan uusi yksinkertainen web-sovellus ja testataan sen toiminta. Opas kattaa kaiken aiheeseen

Lisätiedot

Harjoitustyö: virtuaalikone

Harjoitustyö: virtuaalikone Harjoitustyö: virtuaalikone Toteuta alla kuvattu virtuaalikone yksinkertaiselle olio-orientoituneelle skriptauskielelle. Paketissa on testaamista varten mukana kaksi lyhyttä ohjelmaa. Ohjeita Noudata ohjelman

Lisätiedot

Kieliversiointityökalu Java-ohjelmistoon. Ohje

Kieliversiointityökalu Java-ohjelmistoon. Ohje Kieliversiointityökalu Java-ohjelmistoon Ohje 2/6 SISÄLLYSLUETTELO 1 YLEISTÄ OHJELMASTA... 3 2 PÄÄ-IKKUNA...4 3 YLÄVALIKKO... 4 3.1 TIEDOSTO... 4 3.2 TOIMINTO... 4 3.3 ASETUKSET... 5 3.4 OHJE... 5 4 VÄLILEHDET...5

Lisätiedot

Eclipse 3.1 Pikaopas versio 1.0

Eclipse 3.1 Pikaopas versio 1.0 Anne Benson/Tanja Bergius Opintojaksojen atk84d ja ict02d käyttöön 1/17 Eclipse 3.1 Pikaopas versio 1.0 Pikaohjeen sisältö 1. Esittely 2. Asennus ja poistaminen 3. Sovelluskehitys 4. Sovelluksen toteutus

Lisätiedot

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

Lohtu-projekti. Ylläpitäjän dokumentti. Versiohistoria: Ensimmäinen versio Andreas Asuja Lohtu-projekti Ylläpitäjän dokumentti Versiohistoria: 1.0 12.5.2003 Ensimmäinen versio Andreas Asuja Helsinki 12. toukokuuta 2003 Kimmo Airamaa, Andreas Asuja, Mari Muuronen, Seppo Pastila, Virve Taivaljärvi

Lisätiedot

DOORSin Spreadsheet export/import

DOORSin Spreadsheet export/import DOORSin Spreadsheet export/import 17.10.2006 SoftQA Oy http/www.softqa.fi/ Pekka Mäkinen Pekka.Makinen@softqa.fi Tietojen siirto DOORSista ja DOORSiin Yhteistyökumppaneilla ei välttämättä ole käytössä

Lisätiedot

Jypelin käyttöohjeet» Ruutukentän luominen

Jypelin käyttöohjeet» Ruutukentän luominen Jypelin käyttöohjeet» Ruutukentän luominen Pelissä kentän (Level) voi luoda tekstitiedostoon "piirretyn" mallin mukaisesti. Tällöin puhutaan, että tehdään ns. ruutukenttä, sillä tekstitiedostossa jokainen

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 3 vastaukset Harjoituksen aiheena ovat imperatiivisten kielten muuttujiin liittyvät kysymykset. Tehtävä 1. Määritä muuttujien max_num, lista,

Lisätiedot

Haka-palveluiden valvonta ja tilastointi AAIEye -työkalun avulla. Mika Suvanto, CSC. mika.suvanto@csc.fi 3.9.2009

Haka-palveluiden valvonta ja tilastointi AAIEye -työkalun avulla. Mika Suvanto, CSC. mika.suvanto@csc.fi 3.9.2009 Haka-palveluiden valvonta ja tilastointi AAIEye -työkalun avulla Mika Suvanto, CSC mika.suvanto@csc.fi 3.9.2009 Mitä se tekee? kaksi perustoimintoa: valvoo Haka-palveluiden toimintaa kirjautumalla niihin

Lisätiedot

Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Anne Benson. Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen:

Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Anne Benson. Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen: Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Microsoft SQL käyttö Yleistä VisualStudiosta Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen: - sovellushallintaan -

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print

Lisätiedot

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4) 2. Lisää Java-ohjelmoinnin alkeita Muuttuja ja viittausmuuttuja Vakio ja literaalivakio Sijoituslause Syötteen lukeminen ja Scanner-luokka 1 Muuttuja ja viittausmuuttuja (1/4) Edellä mainittiin, että String-tietotyyppi

Lisätiedot

SEPA diary. Dokumentti: SEPA_diary_PK_HS.doc Päiväys: Projekti: AgileElephant Versio: V0.3

SEPA diary. Dokumentti: SEPA_diary_PK_HS.doc Päiväys: Projekti: AgileElephant Versio: V0.3 AgilElephant SEPA Diary Petri Kalsi 55347A Heikki Salminen 51137K Tekijä: Petri Kalsi Omistaja: ElectricSeven Aihe: PK&HS Sivu 1 / 7 Dokumenttihistoria Revisiohistoria Revision päiväys: 29.11.2004 Seuraavan

Lisätiedot

15. Ohjelmoinnin tekniikkaa 15.1

15. Ohjelmoinnin tekniikkaa 15.1 15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Geneerinen ohjelmointi. Lueteltu tyyppi enum. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien silmukoimiseen:

Lisätiedot

Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT. Jouni Huotari S2008

Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT. Jouni Huotari S2008 Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT Jouni Huotari S2008 2 Proseduurit Ohjelmamoduuleita, jotka voidaan tallettaa tietokantaan (DBMS:n tietohakemistoon)

Lisätiedot

PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009

PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009 PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009 PROSEDUURIT Ohjelmamoduuleita, jotka voidaan tallettaa tietokantaan (DBMS:n tietohakemistoon)

Lisätiedot

Maiju Mykkänen (D6297@jamk.fi) Susanna Sällinen (E0941@jamk.fi)

Maiju Mykkänen (D6297@jamk.fi) Susanna Sällinen (E0941@jamk.fi) Maiju Mykkänen (D6297@jamk.fi) Susanna Sällinen (E0941@jamk.fi) Tietokannan hallinta-opintojakson selvitysraportti Huhtikuu 2010 Mediatekniikka ICT/Teknologia Tämän teosteoksen käyttöoikeutta koskee Creative

Lisätiedot

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

Tiedonhallinnan perusteet. H11 Ovien ja kulun valvontajärjestelmän tietokanta Tiedonhallinnan perusteet H11 Ovien ja kulun valvontajärjestelmän tietokanta Nimi: Mikko Haapanen Opiskelijanumero: 0900568 Ryhmä: T09L Työ tehty: 15.3.2010 Mikko Haapanen 15.3.2010 1(7) 1. Asiakasvaatimukset

Lisätiedot

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

Sisällys. 14. Poikkeukset. Johdanto. Johdanto Sisällys 14. Poikkeukset Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla poikkeuksella? Poikkeusten heittäminen.

Lisätiedot

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

HOJ Haja-aiheita. Ville Leppänen. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/10 HOJ Haja-aiheita Ville Leppänen HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/10 Missä mennään... 1. Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista (1h)

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 3.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 3.3.2010 1 / 44 Kertausta: tiedoston avaaminen Kun ohjelma haluaa lukea tai kirjoittaa tekstitiedostoon, on ohjelmalle

Lisätiedot

14. Hyvä ohjelmointitapa 14.1

14. Hyvä ohjelmointitapa 14.1 14. Hyvä ohjelmointitapa 14.1 Yleistä Ohjelman elinkaari ei tyypillisesti pääty sen toteuttamiseen; ohjelmaa voidaan käyttää ja ylläpitää jopa vuosikymmeniä. Jotta koodin muuttaminen on mahdollista, sen

Lisätiedot

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

Written by Administrator Monday, 05 September 2011 15:14 - Last Updated Thursday, 23 February 2012 13:36 !!!!! Relaatiotietokannat ovat vallanneet markkinat tietokantojen osalta. Flat file on jäänyt siinä kehityksessä jalkoihin. Mutta sillä on kuitenkin tiettyjä etuja, joten ei se ole täysin kuollut. Flat

Lisätiedot

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta. Malli-näkym kymä-ohjain arkkitehtuurit (Model-View View-Controller, MVC) Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta. Lähtökohdat: Sovelluksen

Lisätiedot

TESTIRAPORTTI - XMLREADER LUOKKA Virtuaaliyhteisöjen muodostaminen Versio 1.0

TESTIRAPORTTI - XMLREADER LUOKKA Virtuaaliyhteisöjen muodostaminen Versio 1.0 TESTIRAPORTTI - XMLREADER LUOKKA i Sisällysluettelo 1. YLEISTÄ 2 1.1. Dokumentin tarkoitus ja yleisiä toimintaohjeita 2 1.2. Viittaukset muihin dokumentteihin 2 2. SUORITETTAVA TESTI 3 2.1. Testauksen

Lisätiedot

20. Javan omat luokat 20.1

20. Javan omat luokat 20.1 20. Javan omat luokat 20.1 Sisällys Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 20.2 Java API Java-kielen Application Programming Interface (API)

Lisätiedot

Ohjelmoinnin perusteet, syksy 2006

Ohjelmoinnin perusteet, syksy 2006 Ohjelmoinnin perusteet, syksy 2006 Esimerkkivastaukset 1. harjoituksiin. Alkuperäiset esimerkkivastaukset laati Jari Suominen. Vastauksia muokkasi Jukka Stenlund. 1. Esitä seuraavan algoritmin tila jokaisen

Lisätiedot

15. Ohjelmoinnin tekniikkaa 15.1

15. Ohjelmoinnin tekniikkaa 15.1 15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Lueteltu tyyppi enum. Override-annotaatio. Geneerinen ohjelmointi. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien

Lisätiedot

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö Tekijät: Eemeli Honkonen Joni Metsälä Työ palautettu: SISÄLLYSLUETTELO: 1 SEMINAARITYÖN KUVAUS... 3 2 TIETOKANTA... 3 2.1 MITÄ TIETOKANNAT SITTEN OVAT?... 3

Lisätiedot