Sovellusarkkitehtuurit

Koko: px
Aloita esitys sivulta:

Download "Sovellusarkkitehtuurit"

Transkriptio

1 HELIA TIKO-05 Sovellusarkkitehtuurit ja JDBC 1 ( 19) Sovellusarkkitehtuurit Edellä olemme tutustuneet SQL-kieleen ja transaktiokäsittelyn periaatteisiin. Tarkastelemme tässä osiossa tietokantakäsittelyn ohjelmointia (data access technologies) keskeisissä sovellusarkkitehtuureissa. Tutustumme lähinnä standardoituihin teknologioihin ja erityisesti Javan tietokantaliittymään JDBC. Sovellusarkkitehtuurien perusmalli on 2-kerroksinen asiakas/palvelin (Client/Server). Tyypillinen sovellusarkkitehtuuri kattaa nykyisin useamman kerroksen, mutta kunkin kerroksen välillä näissäkin on asiakas/palvelin suhde. Tietokantapalvelin on näissä arkkitehtuureissa perimmäinen ja tietokantaohjelmointia tarvitaan siis tämän kerroksen asiakaskerroksen ohjelmoinnissa. Osa I Client/Server ja tietokantaohjelmoinnin rajapinnat Perinteinen tietokantojen sovelluskäyttö on perustunut asiakas/palvelin (Client/Server) -arkkitehtuurin, missä sovellusohjelma tai esimerkiksi SQLkomentojen testaamiseen tarkoitettu SQL-editori (esimerkiksi Oraclen SQLPlus) on tietokantapalvelun asiakas ja tietokantapalvelin (instanssi) on toteutettu tyypillisesti erillisessä palvelinkoneessa DBMS-järjestelmällä. DBMS-järjestelmän palvelujen ohjelmointirajapinta (Application Programming Interface, API) on toteutettu kussakin järjestelmässä omalla funktiokirjastolla, esimerkiksi Oraclella OCI-kirjastolla. Etäpalvelimen turvallinen käyttö edellyttää lisäksi erillisten verkkopalvelujen asennuksia. Tällainen Oraclen verkkopalvelunohjelmisto on SQL*Net. DBMS:n funktiokirjaston käytön ohjelmointia on helpotettu esikääntäjätekniikalla, mistä käytetään nimitystä upotettu SQL. Sovelluskoodiin Upotettu SQL Embedded SQL (ESQL) oli ensimmäinen standardoitu SQL-pohjainen tietokantaliittymä, joka mahdollisti lähes DBMS-järjestelmästä riippumattoman tietokantaohjelmoinnin. Sovelluksen ohjelmointiin käytettyä ohjelmointikieltä kuten esimerkiksi COBOL, Fortran, PL/I, C tai C++ sanotaan tässä isäntäkieleksi. Kuvassa 1 on pieni Oraclen C-kielinen esimerkki, joka kuvaa SQL-kielen upotusta sovelluskoodiin EXEC SQL lauseina ja SQL-lauseen parametrointia käyttäen kaksoispistenotaatiolla sovelluskoodin muuttujia input ja output parametreina (host variables). Kuvassa 1b esitetään ESQL-ohjelman kehitysvaiheet. SQL-komennot testataan ensin SQL-editoria käyttäen. Testatut SQL-komennot upotetaan sovellusohjelman lähdekoodiin. Näin muodostettu ESQL-ohjelma käännetään ensin isäntäkielelle

2 HELIA TIKO-05 Sovellusarkkitehtuurit ja JDBC 2 ( 19) sovitetulla esikääntäjällä (precompiler) sovelluskoodiksi, missä EXEC SQL lauseet muutetaan dokumentointia varten kommenteiksi, joiden perään generoidaan kulloisenkin SQL-komennon toteuttava DBMS-järjestelmän funktiokirjaston funktioiden kutsusarjat. Järjestelmästä riippuen esikääntäjä voi jo tarkistaa SQL-komennot tietokannasta luetun metatiedon perusteella ja tallettaa SQL-komentojen suorituksen optimoidut suoritussuunnitelmat tietokantaan (Static SQL). Suoritettavaa ohjelmakoodia varten näin generoitu ohjelmakoodi käännetään ohjelmointikielen kääntäjällä ja siihen linkitetään tarvittavat funktiokirjastot. Kuvan 1 EXEC SQL lause hakee tietokannasta yhden rivin ja latoo sen arvot isäntäkielen muuttujiin. Jos käytetty SQL-komento tuottaa monirivisen tulosjoukon, käytetään tämän ohjelmalliseen käsittelyyn kursori-käsittelyä. Tietokantakäsittelyssä voi sattua erilaisia poikkeustilanteita tai virheitä. EXEC SQL lauseen suorituksen jälkeen näitä tutkitaan järjestelmäkohtaisesta SQLCodemuuttujasta (jonka arvoista on standardoitu seuraavat: 0 = ei virheitä, 100 = ei löytynyt yhtään riviä, negatiiviset arvot ovat virheitä ja positiiviset huomautuksia) tai SQLState-muuttujista, jonka arvot on standardoitu.

3 HELIA TIKO-05 Sovellusarkkitehtuurit ja JDBC 3 ( 19)... #define UNAME_LEN int emp_number; /* Define a host structure for the output values of a SELECT statement. */ /* No declare section needed if precompiler option MODE=ORACLE */ struct { VARCHAR last_name[uname_len]; float salary; float commission_pct; emprec; /* Define an indicator structure to correspond to the host output structure. */ struct { short emp_name_ind; short sal_ind; short comm_ind; emprec_ind;... /* Select columns last_name, salary, and commission_pct given the user's input * for employee_id. */ EXEC SQL SELECT last_name, salary, commission_pct INTO :emprec INDICATOR :emprec_ind FROM employees WHERE employee_id = :emp_number;... Kuva 1. Osa C-ohjelmaa, johon on upotettu SQL-komentoja (lähde: Oracle Database Application Developer s Guide Fundamentals)

4 HELIA TIKO-05 Sovellusarkkitehtuurit ja JDBC 4 ( 19) 2) SQL-komentojen upotus lähdekoodiin SQL-komennot 1) SQL-komentojen testaus Lähdeohjelma + ESQL SQL-editori isäntäkielen ESQL-esikääntäjä Lähdeohjelma + funktiokutsut isäntäkielen kääntäjä 4) tietokannan käyttö 3) tietokannan metatiedon käyttö SQL-jäsennys optimointi ja suoritussuunnitelman mahdollinen talletus tietokantaan välikoodi funktiokirjasto Linkittäjä DBMS suoritettava sovelluskoodi tietokanta Kuva 1b. ESQL-ohjelman kehitysvaiheet ESQL-ratkaisut ovat järjestelmäkohtaisen funktiokirjaston ja sille rakennetun esikääntäjätoteutusten vuoksi järjestelmäsidonnaisia. DBMS:n SQL-murretta välttävä ja SQL-standardin yksinkertaisia tietotyyppejä ja lauserakenteita käyttävä lähdekoodi voi kuitenkin jo olla siirrettävää eli käytettävää DBMS-järjestelmää voidaan vaihtaa käyttämällä toisten järjestelmien ESQL-esikääntäjiä.

5 HELIA TIKO-05 Sovellusarkkitehtuurit ja JDBC 5 ( 19) SQL/CLI ja ODBC SQL-standardiin on ESQL:n jälkeen määritelty myös SQL Call Level Interface (SQL/CLI), joka määrittää järjestelmäriippumattoman funktiokirjaston SQLkomentojen suoritukseen. Tämä on toteutettu lähes sellaisenaan IBM:n DB2- järjestelmän uutena funktiokirjastona. SQL/CLI:n varhaisen työversion pohjalta Microsoft toteutti 90-luvun alussa ODBCkirjaston, missä lähinnä C/C++ -tietokantaohjelmointia varten määritelty ODBC API tarjoaa universaalin tietokantaohjelmoinnin rajapinnan. Sovelluksen paikalliseen Windows-rekisteriin määritellään tietokantayhteyttä varten ns. tietolahde (Data Source), johon määritetään yhteyden rakentamiseen tarvittavat parametritiedot ja DBMS-järjestelmän käyttöä varten asennettu ODBC tietokanta-ajuri (ODBC Driver). Tietokanta-ajuri muuntaa ODBC API:n funktiokutsut DBMS:n funktiokirjaston kutsuiksi ja suorittaa myös joitakin ODBC API:n kautta välitettyjen SQL-lauseiden muunnoksia DBMS:n SQL-murteelle. Native function Library: DBMS: Oracle Application ODBC API ODBC Driver Manager Oracle driver DB2 driver SQL Server driver Network - Formats and Protocols SQL DB2... Server (Windows registry) Data Source - Driver - server - protocols and formats ODBC-ajureita on nykyisin toteutettu lähes kaikille DBMSjärjestelmille. ODBC aloitti näin merkittävän avoimen tietokantaohjelmoinnin kehityksen romahduttaen aikaisempien kalleudellaan kehitystä hidastaneiden tietokantayhteyksien väliohjelmistojen tuotemarkkinat. Database: Kuva 2 ODBC OLE DB ja ADO C/C++ -kielille tarkoitetun ODBC API:n käyttö edellyttää laajan funktiokirjaston ja näiden funktioiden laajan parametriston käytön tuntemista. Microsoft kehitteli sen päälle erilaisia Visual Basic kielille sovitettuja wrapper-luokkakirjastoja kuten DAO ja RDO sekä C++ -olio-ohjelmointiin sopivan OLE DB luokkakirjaston, joka voi käyttää ODBC-yhteyksiä, mutta jolla voidaan DBMS-järjestelmäkohtaisten OLE DB Provider sovittimien avulla ODBC API:a tehokkaammin ja monipuolisemmin varsinkin Microsoftin oman SQL Server järjestelmän palveluita.

6 HELIA TIKO-05 Sovellusarkkitehtuurit ja JDBC 6 ( 19) Visual Basic kielille OLE DB:n päälle Microsoft on kehittänyt helppoköyttöisen ActiveX Data Objects (ADO) luokkakirjaston, joka on kuvattu kuvassa 3. ADOohjelmoinnissa keskeisiä ovat seuraavat: - Connection olioluokka - Command olioluokka - Recordset olioluokka - Fields-kokoelma ja Field - Errors-kokoelma ja Error Yhteys tietokantaan luodaan Connection-olion Open-metodilla ja suljetaan lopuksi Close-metodilla. SQL-komentoja suoritetaan Command-olion Execute-metodilla, kun SQL-lause on ensin asetettu Command-olion CommandText-ominaisuuden arvoksi. SELECT-komento tuottaa Recordset-olion, jolla hallitaan SELECT-komennon tulosjoukkoa (result set). Recordset pitää yhtä tulosjoukon riviä currenttina Fieldskokoelmana, josta sarakenimellä indeksoiden voidaan osoittaa Field-olio ja sen getstring-metodilla tai sarakkeen tietotyyppiä vastaavalla get-metodilla voidaan lukea sarakkeen arvo kyseisellä rivillä. Tulosjoukkoa voidaan selata vaihtamalla currentin rivin osoitusta Recordsetin Move-metodeilla. Connection Errors Command Error Parameters Parameter Properties Recordset Property Fields Field Stream Record Kuva 3. ADO:n objektimalli lähde: David Sceppa, Programming ADO, Microsoft Press ADO on osa Microsoftin Distributed Network Architecture DNA-arkkitehtuurin Microsoft Data Access Controls (MDAC) komponentteja. Microsoftin uudessa Java-sovellusalusta kaltaisessa.net-arkkitehtuurissa ADO:n korvaa kehittyneempi ADO.NET luokkakirjasto.

7 HELIA TIKO-05 Sovellusarkkitehtuurit ja JDBC 7 ( 19) Java JDBC Sunin Java-kielen tietokantaliittymäksi on rakennettu JDBC-spesifikaatio. Tämä on ADO:n kaltainen, mutta puhtaammin SQL-standardia toteuttava luokkakirjasto, jonka version 1 keskeiset rajapintaluokat ja näiden keskeiset metodit näkyvät kuvan 4 kaaviosta. DatabaseMetaData Driver... gettables( ) DriverManager Class getconnection (url, user, psw) Connection Statement ResultSet ResultSetMetaData getmetadata() setcursorname(s) getcolumncount() setautocommit(b) executequery(sql) getmetadata() getcolumnname(i) settransaction executeupdate(sql) findcolumn(name) getcolumnlabel(i) Isolation(level) cancel() next() getcolumndisplaysize(i) createstatement() close() getint(col) preparestatement(sql) getshort(col) preparecall(sql) getnumeric(col) PreparedStatement commit() getdouble(col) rollback() close() setxxxx(n, hvar) clearparameters() getfloat(col) getstring(col) getdate(col) gettime(col) gettimestamp(col) wasnull() settext(s) SQLException CallableStatement append(s) close() getsqlstate() registeroutputparameter geterrorcode() execute() getnextexcetion()... Kuva 4. JDBC 1:n rajapintaluokat ja keskeiset metodit Tätä kirjoitettaessa elämme tosin jo laajemman JDBC 3:n aikaa, mutta JDBC 1 riittää JDBC:n alkeisiin tutustumiseen. Verrattuna ADO:n luokkakirjastoon JDBC:n Statement vastaa ADO:n Commandoliota ja ResultSet ADO:n Recordset-oliota. ODBC:n tapaan JDBC:n sovituksen käytettävän DBMS-järjestelmän palveluihin tekee järjestelmäkohtainen JDBC-ajuri (Driver), jonka tulee löytyä Java-sovellusta ajettaessa CLASSPATH:n poluista. Esimerkki 1. Seuraava Sunin esimerkistä muokattu viittellinen Java-koodi havainnollistaa JDBC:n käyttöä: import java.sql.*; public class ReadResultSet { public static void main(string args[]) { String url = "jdbc:mysubprotocol:mydatasource"; Connection con; Statement stmt; try {

8 HELIA TIKO-05 Sovellusarkkitehtuurit ja JDBC 8 ( 19) Class.forName("myDriver.ClassName"); catch(java.lang.classnotfoundexception e) { System.err.print("ClassNotFoundException: "); System.err.println(e.getMessage()); try { con = DriverManager.getConnection(url, "mylogin", "mypassword"); stmt = con.createstatement(); ResultSet rs = stmt.executequery( "SELECT CoffeeName, Price FROM Coffees"); while (rs.next()) { String name = rs.getstring("coffeename"); float price = rs.getfloat("price"); System.out.println(name + " " + price); rs.close(); stmt.close(); con.close(); catch(sqlexception ex) { System.err.println("-----SQLException-----" + "\nsqlstate: " + ex.getsqlstate() + ", Message: " + ex.getmessage() + ", Vendor SQLcode: " + ex.geterrorcode()); Esimerkkiohjelma etsii Javan JRE\lib\ext hakemiston tai CLASSPATHin hakemistojen jar-tiedostoista ohjelman nimeämän JDBC-ajurin (mydriver.classname, katso taulukko 1), luo yhteyden url-muuttujan määrittämään tietokantapalvelimeen (mydatasource) käyttäen protokollaa mysubprotocol mylogin-käyttäjän nimissä tämän salasanalla. Taulukko 1. JDBC-ajureita DBMS JDBC-ajuri Oracle (Thin) oracle.jdbc.driver.oracledriver Solid solid.jdbc.soliddriver DB2 UDB COM.ibm.db2.jdbc.net.DB2Driver SQL Server URLin todellinen muoto merkkijonon jdbc: jälkeen riippuu käytettävästä JDBCajurista. Tästä on koottu esimerkkejä taulukkoon 2. Taulukko 2. URL-muotoja DBMS URL Oracle (Thin) Solid jdbc:solid://<server>:<portti> DB2 UDB jdbc:db2://<server>:<portti>/<dbname> SQL Server

9 HELIA TIKO-05 Sovellusarkkitehtuurit ja JDBC 9 ( 19) Huom: DB2:n net-ajuri edellyttää, että palvelimelle on käynnistetty DB2 Java Daemon prosessi. Käyttäen Statement-olion stmt executequery-metodia esimerkkisovelluksemme tekee SELECT-kyselyn tauluun Coffees saaden vastauksen ResultSet-olioon rs, listaa kaikki tulosjoukon rivit ja sulkee lopuksi oliot rs, stmt ja con. JDBC-käsittely tapahtuu oletusarvoisesti AutoCommit-moodissa ja tässä pienimuotoisessa esimerkissämme ei siis ole käytetty transaktionaalista tietokantakäsittelyä. SQLJ ja JDO Muita Javan tietokantakäsittelyyn kehitettyjä teknologioita ovat SQLJ ja JDO. SQLJohjelminnissa Java-ohjelmaan upotetaan ESQL:n tapaan SQL-lauseita, joista ennen varsinaista Java-käännöstä generoidaan SQLJ-esikääntäjällä vastaava JDBC-käsittely. JDO puolestaan on olio-ohjelmoinnin myös tietokantakäsittelyyn laajentava uusi teknologia. Näitä on kuvattu mm. Connollyn ja Beggin oppikirjassa Database Systems. Script-kielten tietokantaliittymiä ODBC:n menestyksen innostamana muutamiin yleisiin script-kieliin on myös rakennettu tietokantaliittymiä. Näistä melko laajassa käytössä ja esimerkiksi Oraclen tukemia ovat script-kielet Perl ja PHP. Näiden tietokantaliittymät ovat kuitenkin standardoimattomia ja ohitamme niiden kuvaukset Edellä kuvattuja data access teknologioita harjoitellaan Helian TIKO-2000 tietokantaohjelmointi-opintojaksolla.

10 HELIA TIKO-05 Sovellusarkkitehtuurit ja JDBC 10 ( 19) Oraclen JDBC-toteutus Oracle on toteuttanut 2 client-työasemien JDBC-ajuria: OCI-ajurin ja Thin-ajurin. Molemmat tukevat hajautettuja transaktioita XA-protokollalla. OCI-ajuri tukee kaikkia Oraclen käyttämiä verkkoprotokollia ja edellyttää, että client-työasemaan on asennettu Oracle client-kirjastot. Thin-ajurin osalta riittää vain sen itsensä asennus työasemaan. Thin-ajuri sisältää SQL*Net valmiuden, tukee vain TCP/IP protokollaa ja edellyttää vain että palvelinpäässä on Oraclen TNS Listener. Oracle-tietokantaan voidaan tallettaa myös Java-luokkia, joita voidaan käyttää talletettujen PL/SQL-proseduurien ja funktioiden tapaan. Näitä varten Oracle on toteuttanut Thin-ajurin myös tietokantapalvelimessa, mutta ohitamme tämän kuvauksen. Tarkempia ohjeita Oraclen JDBC-ohjelmoinnista löydät Oraclen JDBC Developer s Guide and Reference käsikirjasta, jonka löydät Info9-palvelimen Oracle-manuals osoitteesta... Esimerkki 2: Oraclen JdbcTest-ohjelma Listataan Scott-käyttäjän EMP-taulun työntekijöiden sukunimet käsikirjasta löytyneellä JdbcTest-ohjelmalla (jota on hieman muutettu) import java.sql.*; class JdbcTest { public static void main (String args []) throws SQLException { String url = try { Class.forName("oracle.jdbc.driver.OracleDriver"); catch(java.lang.classnotfoundexception e) { System.err.print("ClassNotFoundException: "); System.err.println(e.getMessage()); System.exit(-1); // lopetus ajuriongelman vuoksi try { Connection con = DriverManager.getConnection(url,"testeri","psw"); // Query the employee names Statement stmt = con.createstatement (); ResultSet rset = stmt.executequery ( "SELECT ename FROM Scott.emp"); // Print the name out while (rset.next ()) { System.out.println (rset.getstring (1)); //close the result set, statement, and the connection rset.close();

11 HELIA TIKO-05 Sovellusarkkitehtuurit ja JDBC 11 ( 19) stmt.close(); con.close(); catch(sqlexception ex) { System.err.println("-----SQLException-----" + "\nsqlstate: " + ex.getsqlstate() + ", Message: " + ex.getmessage() + ", Vendor SQLcode: " + ex.geterrorcode()); Tallenna ohjelma JdbcTest.java nimisenä hakemistoon C:\Temp ja kopioi myös Oraclen Thin-ajuri classes12.jar hakemistoon C:\Temp Avaa Windowsin cmd.exe-ikkuna ja anna komennot C: CD Temp SET CLASSPATH=.;C:\Temp\classes12.jar Javac JdbcTest.java Java JdbcTest Esimerkki 3. Tilisiirto sarjallistuvuusongelmasta uusintayrityksillä selviytyvänä JDBC-transaktiona Tässä käytetään aikaisempaa transaktioharjoitusten Tilit- taulua ja sen sisältöä: CREATE TABLE Tilit ( Tilino INTEGER NOT NULL PRIMARY KEY, Saldo INTEGER NOT NULL ); INSERT INTO Tilit (Tilino,Saldo) VALUES (101202,10000); INSERT INTO Tilit (Tilino,Saldo) VALUES (220330,20000); COMMIT WORK; Esimerkissä sovelletaan SQL-oppikirjassani 1989 esittämääni vankan transaktion suunnittelumallia. Tuo COBOL-kieleen upotettu malli on nyt toteutettu Javaohjelmassa sarjallistuvuusongelman hallinnan suunnittelumallin testaamista varten. Tämän vuoksi tähän on ohjelmoitu tauko ensimmäiseltä tililtä noston jälkeen. /** * Helia, Martti Laiho * * Sarjallistuvuusongelmasta uusintayrityksillä selviävä Tilisiirtotransaktio */ import java.io.*; import java.sql.*; public class Tilisiirto2 { public static void main (String args[]) throws Exception {

12 HELIA TIKO-05 Sovellusarkkitehtuurit ja JDBC 12 ( 19) java.sql.connection conn = null; boolean jatketaanyrityksia = false; int counter = 0; String SQLState = "*****"; String errmsg = ""; int siirtosumma = 100; System.out.println("Tilisiirtotesti versio 1.0"); try { Class.forName("oracle.jdbc.driver.OracleDriver"); String scon = conn = java.sql.drivermanager.getconnection(scon,"testeri","psw"); catch (Exception e) { System.out.println("** Tietokantayhteys ei avaudu: " + e.getmessage()); System.exit(-1); do { counter++; try { conn.setautocommit(false); // transaktio alkaa conn.settransactionisolation( Connection.TRANSACTION_SERIALIZABLE); errmsg = ""; jatketaanyrityksia = false; PreparedStatement pstmt1 = conn.preparestatement( "UPDATE Tilit SET saldo = saldo -? WHERE tilino =?"); pstmt1.setint(1, siirtosumma); pstmt1.setint(2, ); // miltä tililtä pstmt1.executeupdate(); // pause vain samanaikaisuuden testiä varten - odotetaan toisella // sovelluksella testattavaa ristiriitaista päivitystä System.out.print("\nJatka ENTER-nappaimella..."); BufferedReader reader = new BufferedReader( new InputStreamReader(System.in)); String s = reader.readline(); // pausen loppu PreparedStatement pstmt2 = conn.preparestatement( "UPDATE Tilit SET saldo = saldo +? WHERE tilino =?"); pstmt2.setint(1, siirtosumma); pstmt2.setint(2, ); // mille tilille pstmt2.executeupdate(); conn.commit(); pstmt1.close(); pstmt2.close();

13 HELIA TIKO-05 Sovellusarkkitehtuurit ja JDBC 13 ( 19) catch (SQLException ex) { try { errmsg = "\nsqlexception:"; while (ex!= null) { SQLState = ex.getsqlstate(); // tutkitaan onko sarjallistuvuusongelma if (SQLState.equals("40001") // Solid, SQL Server,... SQLState.equals("61000")) // Oracle jatketaanyrityksia = true; errmsg = errmsg + "SQLState: "+ SQLState; errmsg = errmsg + ", Message: "+ ex.getmessage(); errmsg = errmsg + ", Vendor: "+ ex.geterrorcode() + "\n"; ex = ex.getnextexception(); conn.rollback(); // println vain testiä varten System.out.println("** Tietokantavirheita: " + errmsg); if (jatketaanyrityksia) { long pause = (long) (Math.random () * 10000); // max 10 sek. System.out.println("Odotetaan "+pause+ " msekuntia"); // testiä Thread.sleep(pause); catch (Exception e) { // mahdolliset SQLException käsittelyn ongelmat conn.rollback(); ; // SQLException catch (Exception e) { conn.rollback(); ; // tähän muiden poikkeusten käsittely // muut exceptionit while (jatketaanyrityksia && counter < 10); // max 10 yritystä conn.close(); System.out.println("\n Ohjelman loppu. "); Testiajon käsikirjoitus on seuraava: 1. Käynnistetään ohjelma ja saadaan ilmoitukset: Tilisiirtotesti versio 1.0 Jatka ENTER-nappaimella SQLPlus-istunnosta on tehty ohjelman kanssa vastakkainen tilisiirto komennolla UPDATE Tilit SET saldo=saldo 200 WHERE tilino=220330; 3. jatketaan ohjelman suoritusta ENTER-näppäimellä. 4. SQLPlus-istunnosta annetaan komento UPDATE Tilit SET saldo=saldo WHERE tilino=101202;

14 HELIA TIKO-05 Sovellusarkkitehtuurit ja JDBC 14 ( 19) 5. Ohjelma tulostaa esimerkiksi seuraavaa ** Tietokantavirheita: SQLException:SQLState: 61000, Message: ORA-00060: deadlock detected while waiting for resource, Vendor: 60 Odotetaan 7671 msekuntia Jatka ENTER-nappaimella SQLPlus-istunnosta annetaan COMMIT tai ROLLBACK. Jos SQLPlus-istunnosta ei jatketa kilpailevia transaktioita, saa ohjelma tilisiirron suoritettua testiin ohjelmoidun odotusajan jälkeen. Esimerkin Java-ohjelma ei pyri olemaan täydellinen malli Java-ohjelmoinnista. Esimerkki näyttää kuitenkin JDBC-ohjelmoinnista mm. parametroitujen SQLkomentojen käytön, standardoidun SQLState-ilmaisimen käytön, jne. Monia tärkeitä JDBC-ohjelmoinnissa tarvittavia tekniikoita jää tässä pienessä esimerkissä esittelemättä, mm. SQL:n NULL-arvojen käsittely, SQL:n tietotyyppien ja Javan tietotyyppien vastaavuudet, aikatietojen käsittely ja SQL-murteiden sovitus JDBC:n escape-notaatioilla, jne. Vikasietoinen versio tästä transaktiomallista edellyttäisi tietokantayhteyksien avaamista jokaisella yrityskerralla. Näitä transaktioiden suunnittelumalleja tutkitaan tietokantaohjelmoinnin opintojaksolla tarkemmin.

15 HELIA TIKO-05 Sovellusarkkitehtuurit ja JDBC 15 ( 19) Osa II Sovelluspalvelimet ja monikerrosarkkitehtuuri J2EE Sunin ja kumppaneiden määrittämä Java TM 2 Platform Enterprise Edition eli J2EE spesifikaatio määrittää Java-pohjaisen sovellusarkkitehtuurin (kuva 5), jonka takana ovat Microsoftia lukuunottamatta lähes kaikki ITC-alan keskeiset ohjelmistotoimittajat, mm. IBM ja Oracle, joilta on omat sovelluspalvelintoteutukset. Selain Web-palvelin Sovelluspalvelin Security Manager Transaction Manager Connection Pool Java-sovellus JDBC JDBC Tietokantapalvelin JDBC Kuva 5. J2EE-arkkitehtuuri lähde: Java TM 2 Platform Enterprise Edition Specification, v5.0 J2EE-arkkitehtuurin mukaan tietokantakäsittely toteutetaan JDBC:llä Javasovelluksista (Client/Server), Web-komponenteista (servletit ja Java beanit) tai sovelluspalvelimeen asennettavista EJB-komponenteista. Sovelluspalvelimen Transaction Manager mahdollistaa transaktionaaliset EJB-komponenttien metodit, jotka voivat käyttää luotettavasti useaakin tietokantaa samassa globaalissa transaktiossa ja transaktio voi kattaa useankin komponentin metodin. Tietokantapalvelimet ovat tässä Resource Managereita, jotka hallitsevat kannassa toteutetut paikalliset transaktiot (local transaction) osana sovelluspalvelimen globaalia eli hajautettua transaktiota. Sovelluspalvelimen Transaction Manager toimii hajautetun transaktion koordinoijana neuvotellen transaktion Commit-operaatiosta transaktioon osallistuneiden Resource Managereiden kanssa ns. XA Two-Phase

16 HELIA TIKO-05 Sovellusarkkitehtuurit ja JDBC 16 ( 19) prokollalla (2PC), jossa transaktio perutaan globaalisti, jos yksikin paikallinen transaktio jäisi committoimatta. Tämä edellyttää, että tietokantayhteyksissä käytetyt JDBC-ajurit tukevat XA-protokollaa. JDBC:n tietokantayhteyden avaaminen on melko raskas operaatio. Tätä varten sovelluspalvelimen Connection Pool palvelu pitää varastossa valmiita fyysisiä tietokantayhteyksiä ja komponentin avatessa tietokantayhteyden avaaminen onkin vain looginen operaatio, jossa komponetti saa käyttöönsä jo valmiin tietokantayhteyden. Komponentin sulkiessa tietokantayhteyden tämä onkin looginen operaatio, jossa yhteyttä ei suljeta, vaan se siirretään uudelleenkäytettäväksi yhteysaltaaseen. Tämä mahdollistaa sovelluksen skaalautumisen palvelemaan laajempaa samanaikaista käyttäjäjoukkoa. EJB-komponentteja on kolmea erilaista tyyppiä, joiden tietokantakäsittelyn ohjelmointimallit poikkeavat toisistaan. Session Bean tyypeissä tietokantakäsittely toteutetaan JDBC:llä. Entity Bean tyypeistä on käytettävissä tietokantakäsittelyn osalta malli, jossa tietokantakäsittely ohelmoidaan itse, ja malli, jossa tietokantakäsittely hoidetaan sovelluspalvelimen Persistence Managerin toimesta automaattisesti. Ohitamme kuitenkin tällä erää tämän mielenkiitoisen aiheen. J2EE-arkkitehtuuria käsitellään tarkemmin Helian TIKO-2000 J2EEopintojaksolla.

17 HELIA TIKO-05 Sovellusarkkitehtuurit ja JDBC 17 ( 19).NET, ADO.NET ja Client-Side XML Microsoftin uusi.net-arkkitehtuuri muistuttaa pitkälti Sunin J2EE-arkkitehtuuria ja näiden kehitys kulkeekin melkein tasajalkaa. Tietokantakäsittely toteutetaan.netarkkitehtuurissa ADO.NET luokkakirjastoilla, jota havainnollistaa viitteellisesti kuva 6. Client.NET Data Provider Generic objects with interfaces, versions depending on the Data Provider Object Array Object DataSet DataRelation Table X Table Y.ConnectionString.Open Transaction.BeginTransaction.Commit Connection.Rollback.Close Parameters.CreateCommand.ExecuteNonQuery Command.ExecuteScalar.CommandText.ExecuteReader.Read.Get<type> IDataReader DataReader DBMS DataAdapter XML XSD Kuva 6. ADO.NET:in client-side ja ADO.NET Data Providerien objektit JDBC:hen verrattuna mielenkiintoisia ratkaisuja ovat mm. Transaction-oliot, Command-olion erilaiset Execute-metodit, ResultSet-olioa vastaavan olion puuttuminen. ADO:n Recordset on korvattu toisaalta tulosjoukon forward-only tavalla purkavalla DataReader-oliolla ja toisaalta client-sovelluksen muistiavaruudessa toteutetulla varsinaiseen tietokantaan yhteydettömällä tietokantakopiolla DataSet, jossa voi olla useita paikallisia tauluja, näissä eheysrajoituksia ja näiden välillä eheyttä valvovia yhteyksiä. DataSetin käsittely ei ole SQL-pohjaista vaan navigoivaa. DataSetin rakenteet voidaan serialisoida WriteXmlSchema-metodilla XSD-tyyppiseen XML Schema tiedostoon ja rakenteet voidaan myös luoda ReadXmlSchemametodilla olemassaolevasta XSD-tiedostosta. Vastaavasti Datasetin tietosisältö voidaan serialisoida WriteXml-metodilla XML-tiedostoon ja lukea ReadXmlmetodilla XML-tiedostosta. DataSetista voidaan instantioida muistiin erillinen XmlDataDocument-tyyppinen DOM-puu, jota voidaan käsitellä XPath-kielellä ja XmlDataDocumentin tietosisältö voidaan synkronoida takaisin DataSetin tietosisällöksi.

18 HELIA TIKO-05 Sovellusarkkitehtuurit ja JDBC 18 ( 19) Kuvan 6 kaaviosta puuttu mm. XmlReader-olio, jolla voidaan lukea suoraan tietokannasta tulevaa XML-virtaa..NET-arkkitehtuuria ja ADO.NET-ohjelmointia käsitellään tarkemmin Helian TIKO-2000.NET-opintojaksolla Web Services ja SOA Sekä J2EE että.net-arkkitehtuurit sisältävät Web Services palvelut, jossa palvelua käytetään XML-pohjaisilla alustariippumattomilla SOAP-sanomilla. Näin Web Services tarjoaa keinon integroida J2EE ja.net-pohjaisia järjestelmiä. Tästä palveluorientoituneesta sovellusarkkitehtuurista käytetään nimitystä SOA (Service Oriented Architecture). Sovelluspalvelinten lisäksi myös uudet Oracle ja SQL Server versiot mahdollistavat Web Service palvelun suoraan tietokantapalvelimesta.

19 HELIA TIKO-05 Sovellusarkkitehtuurit ja JDBC 19 ( 19) Harjoitukset (Tuntiharjoituksia opettajan johdolla) Huom. Käytä mieluimmin myy-palvelimella olevaa työhakemistoasi. Jos käytät paikallisen C-levyn työhakemistoa, niin muista poistaa ohjelmasi levyltä harjoituksen lopuksi, ettei ohjelmiin kirjoitetut käyttäjätunnuksesi joutuisi vääriin käsiin! Harjoitus 1. Kokeile tekstissä esitetyn esimerkki 2:n JdbcTest-ohjelmaa sellaisenaan. Info9:n TUX2-instanssissa on Scott-käyttäjällä EMP-taulu ja testeri-käyttäjällä lukuoikeus Scott-käyttäjän esimerkkitauluihin. Harjoitus 2. Sovella esimerkkiä 2 TUX1-instanssissa omalla tunnuksellasi oleviin Takkulan tauluihin kyselyyn 29: Minkä arvosanan kukin oppilas on eri kursseista saanut. Hae jokaiselle oppilaalle jokaisen suorituksen arvosana sekä aine- ja kurssitunnus ja aineen nimi. (Kaikilla oppilailla ei välttämättä ole arvosanoja, myös nämä tulostuvat). Lajittele oppilaan nimen mukaan..

RDBMS - Yhteyskäytännöt

RDBMS - Yhteyskäytännöt HAAGA-HELIA Heti-09 1 (11) RDBMS - Yhteyskäytännöt Johdanto... 2 Upotettu SQL... 3 ESQL esimerkki... 4 ODBC... 5 Visual Basic ja ADO... 6 JAVA ja JDBC... 7 JDBC esimerkki... 8 Oracle ja JDBC... 9 Connection

Lisätiedot

Sovellusarkkitehtuurit

Sovellusarkkitehtuurit HELIA TIKO-05 Sovellusarkkitehtuurit 1 ( 19) Sovellusarkkitehtuurit Edellä olemme tutustuneet SQL-kieleen ja transaktiokäsittelyn periaatteisiin. Tarkastelemme tässä osiossa tietokantakäsittelyn ohjelmointia

Lisätiedot

käännös käännösvaiheessa tarkasettaan linkitys

käännös käännösvaiheessa tarkasettaan linkitys Upotettu SQL Ohjelmoitaessa 3GL kielillä, käytetään relaatiotietokantaa yleensä esikääntäjien avulla. Tietokannan valmistaja toimittaa funktiokirjaston, jota esikääntäjän avulla hyödynnetään. Ongelmaksi

Lisätiedot

EXEC SQL BEGIN DECLARE SECTION

EXEC SQL BEGIN DECLARE SECTION Tietokantaohjelmointi Tietokantaa käytetään harvoin suoraan kyselyliittymän kautta Tyypillisesti käyttö tapahtuu sovellusohjelman kautta Sovellusohjelmaa laadittaessa vaihtoehtoja tietokantakäsitettelyn

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

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 - Tietokannan ylläpito. SQL - Tietokannan ylläpito. SQL - Tietokannan ylläpito. SQL - Tietokannan ylläpito. SQL - Tietokannan ylläpito

SQL - Tietokannan ylläpito. SQL - Tietokannan ylläpito. SQL - Tietokannan ylläpito. SQL - Tietokannan ylläpito. SQL - Tietokannan ylläpito SQL sisältää operaatiot tietokannan sisällön muodostamiseen ja ylläpitoon: insert - uusien rivien vienti tauluun delete - rivien poisto update - rivien muutos Insert lauseella on kaksi muotoa: insert into

Lisätiedot

Sovellusarkkitehtuurit

Sovellusarkkitehtuurit HELIA TiKo-05 1 (9) Sovellusarkkitehtuurit ODBC (Open Database Connectivity)... 2 JDBC (Java Database Connectivity)... 5 Middleware... 6 Middleware luokittelu... 7 Tietokanta -middleware... 8 Tapahtumamonitorit

Lisätiedot

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

Tehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen Esimerkki: Tehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen Luo tietokanta Koulu. Tietokantaan lisätään 3 taulua. Kurssit-taulu: kurssiid not null primary key INTEGER aineid not

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

Pedacode Pikaopas. Tietokantaa hyödyntävän sovelluksen luominen

Pedacode Pikaopas. Tietokantaa hyödyntävän sovelluksen luominen Pedacode Pikaopas Tietokantaa hyödyntävän sovelluksen luominen Pikaoppaan sisältö Pikaoppaassa kuvataan, Netbeans-työkalulla luodaan uusi yksinkertainen Java DB -tietokantaa hyödyntävä sovellus. Opas kattaa

Lisätiedot

Tietokantaohjelmoinnin tekniikkoja Java-kielellä

Tietokantaohjelmoinnin tekniikkoja Java-kielellä Tietokantaohjelmoinnin tekniikkoja Java-kielellä Ville Kuokkanen Helsinki 6. helmikuuta 2003 Relaatiotietokannat nyt seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos i Tietokantaohjelmoinnin

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

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

Rinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti

Rinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti Rinnakkaisohjelmointi kurssi Opintopiiri työskentelyn raportti Opintopiiri: Heikki Karimo, Jesse Paakkari ja Keijo Karhu Päiväys: 15.12.2006 Ohjelmointitehtävä C i C i : Säikeet ja kriittisen vaiheen kontrollointi

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

Ohjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia.

Ohjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia. Ohjelmointitaito (ict1td002, 12 op) Kevät 2008 Raine Kauppinen raine.kauppinen@haaga-helia.fi 1. Java-ohjelmoinnin alkeita Tietokoneohjelma Java-kieli ja Eclipse-ympäristö Java-ohjelma ja ohjelmaluokka

Lisätiedot

HELIA TIKO-05 SQL-TRANSAKTIOT 1 ( 12) ICT03D Tieto ja tiedon varastointi

HELIA TIKO-05 SQL-TRANSAKTIOT 1 ( 12) ICT03D Tieto ja tiedon varastointi HELIA TIKO-05 SQL-TRANSAKTIOT 1 ( 12) SQL-transaktiot Lähes kaikissa tietojärjestelmissä tietojen talletus on toteutettu tietokannoissa, joita käytetään tietokannanhallintajärjestelmien (DBMS) palvelujen

Lisätiedot

Web Services tietokantaohjelmoinnin perusteet

Web Services tietokantaohjelmoinnin perusteet ASP.NET Web Services Web Services tietokantaohjelmoinnin 2 (22) Sisällys Harjoitus 1: Tietokannat ja Web Services... 3 Harjoitus 2: Windows Client... 10 Harjoitus 3: Datan päivitys TableAdapterin avulla...

Lisätiedot

Tietokannan webbikytkentä. Janne Petäjä

Tietokannan webbikytkentä. Janne Petäjä Tietokannan webbikytkentä Janne Petäjä Helsinki 7. huhtikuuta 2003 Relaatiotietokannat nyt - seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Tietokannan webbikytkentä Janne Petäjä Relaatiotietokannat

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

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

Microsoft Visual Studio 2005

Microsoft Visual Studio 2005 Sovelluksen jako palvelimiksi: Palvelin on sille annettuun vastuulliseen tehtävään erikoistunut sovellusosa. Käyttöliittymäpalvelin (Web-palvelin) vastaa käyttöliittymän toteuttamisesta. Web-palvelin toteuttaa

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

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

HELIA TIKO-05 1 (22) ICT03D Tieto ja tiedon varastointi E.Räty, O.Virkki 9.3.2010 HELIA TIKO-05 1 (22) SQL SQL... 2 Historiaa... 2 Standardit... 3 Käyttö... 4 Sql-komentojen kirjoittaminen... 5 DDL... 7 Tietokantaobjektien määrittely... 7 SQL:n tietotyypit... 8 Eheyssääntöjen määrittely...

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

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

Case TUHTI. Projektin tunnuslukuja. ! Suuri perusjärjestelmäuudistus! Työt alkoivat kesällä 1999. ! Java luokkia n. 5000

Case TUHTI. Projektin tunnuslukuja. ! Suuri perusjärjestelmäuudistus! Työt alkoivat kesällä 1999. ! Java luokkia n. 5000 Case TUHTI 17.12.2002 1 TietoEnator 2002 Projektin tunnuslukuja! Suuri perusjärjestelmäuudistus! Työt alkoivat kesällä 1999! Otettu tuotantokäyttöön syksyllä 2001! Proof of Concept (5 henkilöä 4 kk) ->

Lisätiedot

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); Tietokannat SQL-peruskomentojen pikaopas CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi); INSERT INTO table VALUES(val1,val2,... ); Lisää tauluun

Lisätiedot

Listarakenne (ArrayList-luokka)

Listarakenne (ArrayList-luokka) Listarakenne (ArrayList-luokka) Mikä on lista? Listan määrittely ArrayList-luokan metodeita Listan läpikäynti Listan läpikäynti indeksin avulla Listan läpikäynti iteraattorin avulla Listaan lisääminen

Lisätiedot

Tietokannat II -kurssin harjoitustyö

Tietokannat II -kurssin harjoitustyö Tietokannat II -kurssin harjoitustyö Olli Opiskelija (123), olli.opiskelija@foo.fi Maija Mallioppilas (321), maija.mallioppilas@foo.fi 13.3. 2007 1 Sisältö 1 Tietokannan kuvaus 3 1.1 Tietokannan rakenne..................................

Lisätiedot

Visual Basic -sovelluskehitin Juha Vitikka

Visual Basic -sovelluskehitin Juha Vitikka Visual Basic -sovelluskehitin Helsinki 30.10.2000 Seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Visual Basic sovelluskehitin Seminaari: Ohjelmistotuotantovälineet Tietojenkäsittelytieteen

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

Java-kielen perusteet

Java-kielen perusteet Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, Vakio Tiedon merkkipohjainen tulostaminen Ohjelmointi (ict1tx006) Tunnus (5.3) Javan tunnus Java-kirjain Java-numero

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

TIETOKANNAT JOHDANTO

TIETOKANNAT JOHDANTO TIETOKANNAT JOHDANTO JOUNI HUOTARI & ARI HOVI 2000-2011 Tieto TAUSTAA Yritykselle tiedot ovat tärkeä resurssi päätöksenteon tukena (JIT) varastointi ja käyttö vaativat investointeja vrt. energia (lähde,

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

TIETOKANTOJEN PERUSTEET MARKKU SUNI

TIETOKANTOJEN PERUSTEET MARKKU SUNI TIETOKANTOJEN PERUSTEET MARKKU SUNI SQL - KIELI TIETOJEN MUOKKAUS MARKKU SUNI Tarkastellaan tauluissa olevien tietojen muokkausta muokkauskäskyjä: INSERT UPDATE DELETE Kysymys kuuluu: Voiko tietoja muokata

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

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

WWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa

WWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa WWW ja tietokannat WWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa tekstiä, kuvia, hyperlinkkejä Staattiset sivut kirjoitettu kerran, muuttaminen käsin ongelmana pysyminen ajantasalla Ylläpito hankalaa,

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

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo 15.2.2006

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo 15.2.2006 TURUN YLIOPISTO DEMO III Informaatioteknologian laitos tehtävät Olio-ohjelmoinnin perusteet / Salo 15.2.2006 1. Tässä tehtävässä tarkastellaan erääntyviä laskuja. Lasku muodostaa oman luokkansa. Laskussa

Lisätiedot

Java-kielen perusteita

Java-kielen perusteita Java-kielen perusteita valintalauseet 1 Johdantoa kontrollirakenteisiin Tähän saakka ohjelmissa on ollut vain peräkkäisyyttä eli lauseet on suoritettu peräkkäin yksi kerrallaan Tarvitsemme myös valintaa

Lisätiedot

DBTechNet. DBTech VET. SQL Transactions. Teoriaa ja käytännönharjoituksia. Suomeksi

DBTechNet. DBTech VET. SQL Transactions. Teoriaa ja käytännönharjoituksia. Suomeksi DBTechNet DBTech VET SQL Transactions Teoriaa ja käytännönharjoituksia Suomeksi SQL-transaktioiden käytännön teoriaa ja harjoituksia Versio 0.5, maaliskuu 2014 Tekijät: Martti Laiho ja Mika Wendelius Tämä

Lisätiedot

Oracle-tietokanta. Riku Nykänen 1/2010

Oracle-tietokanta. Riku Nykänen 1/2010 Oracle-tietokanta Riku Nykänen 1/2010 Sisältö Oraclen historiaa Tietokannan rakenne ja arkkitehtuuri Oraclen ominaisuuksia Tietokannan hallintatyökalut DB configuration assistant (DBCA) Enterprise Manager

Lisätiedot

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.3.0

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.3.0 Toukokuu 2013 1 (10) Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.3.0 Päivitysohje Copyright Aditro 2013 Toukokuu 2013 2 (10) Sisällysluettelo 1. Tehtävät ennen versiopäivitystä... 3 1.1. Ohjelmistomuutosten

Lisätiedot

Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();

Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa(); Sisällys 7. Oliot ja viitteet Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen. Viitteiden käsittelyä: sijoitus, vertailu ja varautuminen null-arvoon. Viite metodin paluuarvona.. 7.1 7.2 Olio

Lisätiedot

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004 Vertailulauseet Ehtolausekkeet Ehdot, valintalausekkeet Boolean-algebra == yhtäsuuruus!= erisuuruus < pienempi suurempi >= suurempi tai yhtäsuuri Esimerkkejä: int i=7; int j=10;

Lisätiedot

HSMT J2EE & EJB & SOAP &...

HSMT J2EE & EJB & SOAP &... HSMT J2EE & EJB & SOAP &... Ville Leppänen HSMT, c Ville Leppänen, IT, Turun yliopisto, 2011 p.1/15 Missä mennään... 1. Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista

Lisätiedot

JavaRMI 1 JAVA RMI. Rinnakkaisohjelmoinnin projekti 1 osa C Tekijät: Taru Itäpelto-Hu Jaakko Nissi Mikko Ikävalko

JavaRMI 1 JAVA RMI. Rinnakkaisohjelmoinnin projekti 1 osa C Tekijät: Taru Itäpelto-Hu Jaakko Nissi Mikko Ikävalko JavaRMI 1 JAVA RMI Rinnakkaisohjelmoinnin projekti 1 osa C Tekijät: Taru Itäpelto-Hu Jaakko Nissi Mikko Ikävalko JavaRMI 2 Table of Contents...1 JAVA RMI...1 Yleistä...4 Arkkitehtuuri...5 Java RMI kerrosarkkitehtuuri...5

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

1. Olio-ohjelmointi 1.1

1. Olio-ohjelmointi 1.1 1. Olio-ohjelmointi 1.1 Sisällys Olio-ohjelmointi on eräs ohjelmointiparadigma. Olio-ohjelmoinnin muotoja. Ohjelmiston analyysi ja suunnittelu. Olioparadigman etuja ja kritiikkiä. 1.2 Ohjelmointiparadigmoja

Lisätiedot

Microsoft Visual J++ ohjelmointiympäristö

Microsoft Visual J++ ohjelmointiympäristö Microsoft Visual J++ ohjelmointiympäristö Ohjelmistotuotantovälineet seminaarin alustus Raine Lehto Helsingin yliopisto Tietojenkäsittelytieteen laitos 08.11.2000 Helsinki Sisällys 1 Johdanto...2 2 Sovelluskehys

Lisätiedot

Java-kielen perusteita

Java-kielen perusteita Java-kielen perusteita Käyttäjän kanssa keskusteleva ohjelma 1 Kirjoittaminen konsolinäkymään //Java ohjelma, joka tulostaa konsoli-ikkunaan public class HeiMaailma { public void aja() { // kirjoitus ja

Lisätiedot

Järjestelmäarkkitehtuuri (TK081702) Järjestelmäarkkitehtuuri. Järjestelmäarkkitehtuuri

Järjestelmäarkkitehtuuri (TK081702) Järjestelmäarkkitehtuuri. Järjestelmäarkkitehtuuri Järjestelmäarkkitehtuuri (TK081702) ja Järjestelmäarkkitehtuuri Sovellukset ovat olemassa Järjestelmien uudistaminen vie yleensä arvioitua enemmän resursseja ja kestää arvioitua kauemmin Migration (Migraatio

Lisätiedot

Mikä yhteyssuhde on?

Mikä yhteyssuhde on? 1 Yhteyssuhde Mikä yhteyssuhde on? Yhteyssuhde Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Mikä yhteyssuhde on? Tili - : String - : double * 1 Asiakas - hetu: String - : String

Lisätiedot

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.4.0

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.4.0 Toukokuu 2014 1 (11) Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.4.0 Päivitysohje Toukokuu 2014 2 (11) Sisällysluettelo 1. Tehtävät ennen versiopäivitystä... 3 1.1. Ohjelmistomuutosten luku...

Lisätiedot

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Kirjoita jokaiseen palauttamaasi konseptiin kurssin nimi, kokeen päivämäärä, oma nimi ja opiskelijanumero. Vastaa kaikkiin tehtäviin omille konsepteilleen.

Lisätiedot

Helia Ohjelmointitaito 14.3.2005 Tuomas Kaipainen Mermit Business Applications Oy. 2005 Mermit Business Applications

Helia Ohjelmointitaito 14.3.2005 Tuomas Kaipainen Mermit Business Applications Oy. 2005 Mermit Business Applications Helia Ohjelmointitaito 14.3.2005 Tuomas Kaipainen Mermit Business Applications Oy Esityksen sisältö Mermit yrityksenä Perustiedot Toimintamalli Mermit työpaikkana ohjelmistoinsinöörille Esimerkkiprojekti

Lisätiedot

HOJ J2EE & EJB & SOAP &...

HOJ J2EE & EJB & SOAP &... HOJ J2EE & EJB & SOAP &... Ville Leppänen HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/18 Missä mennään... 1. Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista

Lisätiedot

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu 13.11.2000

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu 13.11.2000 HELIA 1 (15) Luento 2.7 Toiminnallisuutta tietokantaan... 2 Deklaratiivinen eheysvalvonta... 2 Proseduraalinen eheysvalvonta... 3 Eheysvalvonnan suunnittelusta... 4 Sääntöjen määrittely... 4 Toteutusvaihtoehdot...

Lisätiedot

Kompositio. Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma

Kompositio. Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Kompositio Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Mikä kompositio on? Tili - : String - : double 1 1 Kayttoraja

Lisätiedot

YHTEYSSUHDE (assosiation)

YHTEYSSUHDE (assosiation) YHTEYSSUHDE (assosiation) -Mikä on yhteyssuhde? -Miten toteutan yhteyssuhteen? 1 Mikä on yhteyssuhde? Yhteyssuhde kuvaa kahden olion välistä suhdetta: Esim. Auto Henkilö, omistussuhde Tili Asiakas, omistussuhde

Lisätiedot

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

Kirjasto Relaatiotietokannat Kevät 2001. Auvinen Annemari Niemi Anu Passoja Jonna Pulli Jari Tersa Tiina Kirjasto Kevät 2001 Auvinen Annemari Niemi Anu Harjoitustyö 7.4.2001 Sisällysluettelo 1. Yleiskuvaus... 3 2. Vaatimukset... 3 2.1. Toiminnalliset... 3 2.1.1. Sisäänkirjautuminen... 3 2.1.2. Nimikkeiden

Lisätiedot

Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes)

Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes) Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes) Kääreluokista Javan alkeistietotyypit ja vastaavat kääreluokat Autoboxing Integer-luokka Double-luokka Kääreluokista Alkeistietotyyppiset muuttujat (esimerkiksi

Lisätiedot

Samanaikaisuuden hallinta. tietokantapalvelimessa. Tiedonhallintaa. Alkuper. versio: Jaakko Rantanen Pieniä korjauksia: Jouni Huotari 26.2.

Samanaikaisuuden hallinta. tietokantapalvelimessa. Tiedonhallintaa. Alkuper. versio: Jaakko Rantanen Pieniä korjauksia: Jouni Huotari 26.2. Samanaikaisuuden hallinta tietokantapalvelimessa Tiedonhallintaa Alkuper. versio: Jaakko Rantanen Pieniä korjauksia: Jouni Huotari 1 Transaktiot eli tapahtuma(sarja)t 2 Transaktio (transaction) on DBMSn

Lisätiedot

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); Tietokannat SQL-peruskomentojen pikaopas CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi); INSERT INTO table VALUES(val1,val2,... ); Lisää tauluun

Lisätiedot

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

select tulostietomäärittely from taulukkeet [where valintaehdot] [group by ryhmitystekijät] [having ryhmärajoitteet] [order by järjestysperusta] SQL kysely Kyselyn yleisrakenne: select tulostietomäärittely from taulukkeet [where valintaehdot] [group by ryhmitystekijät] [having ryhmärajoitteet] [order by järjestysperusta] Kysely tuottaa nimettömän

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

Opettajana Mika Sorsa, mika.sorsa@koudata.fi, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

Opettajana Mika Sorsa, mika.sorsa@koudata.fi, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija Opettajana Mika Sorsa, mika.sorsa@koudata.fi, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija Opintojaksolla: keskitytään relaatiotietokantojen teoriaan ja toimintaan SQL-kieli kyselykielenä

Lisätiedot

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

Ylläpito-ohje. Matematiikan oppifoorumi. Carl Johansson Jukka Kariola Outi Marttila Helena Venäläinen Sampsa Virtanen. Ohjaaja. Matematiikan oppifoorumi Ylläpito-ohje Carl Johansson Jukka Kariola Outi Marttila Helena Venäläinen Sampsa Virtanen Ohjaaja Jukka Eskola Ohjelmistotuotantoprojekti 17.12.1999 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen

Lisätiedot

Java-API, rajapinnat, poikkeukset, UML,...

Java-API, rajapinnat, poikkeukset, UML,... Java-API, rajapinnat, r poikkeukset, UML,... Janne Käki 12.10.2006 Keskeisimmät Java-API:n pakkaukset API = Application Programming Interface eli sovellusohjelmointirajapinta (!) pakkaus (engl. package)

Lisätiedot

Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu

Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu Taulukot Taulukon määrittely ja käyttö Taulukko metodin parametrina Taulukon sisällön kopiointi toiseen taulukkoon Taulukon lajittelu esimerkki 2-ulottoisesta taulukosta 1 Mikä on taulukko? Taulukko on

Lisätiedot

Tikon Ostolaskujenkäsittely versio 6.1.2 SP1

Tikon Ostolaskujenkäsittely versio 6.1.2 SP1 Toukokuu 2012 1 (14) Tikon Ostolaskujenkäsittely versio 6.1.2 SP1 Asennusohje Toukokuu 2012 2 (14) Sisällysluettelo 1. Vaatimukset palvelimelle... 3 1.1..NET Framework 4.0... 3 1.2. Palvelimen Internet

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 15.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.3.2010 1 / 56 Tiedostoista: tietojen tallentaminen ohjelman suorituskertojen välillä Monissa sovelluksissa ohjelman

Lisätiedot

TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI

TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI Tavoite: Suunnitella käyttäjien tarvitsemat turvallisuusmekanismit ja säännöt. Toisin sanoen: tehdä tietokannasta turvallinen ja luotettava. Muistutus: Tietokanta

Lisätiedot

MUITA TIETOKANTAOBJEKTEJA NÄKYMÄT, SYNONYYMIT, INDEKSOINTI, VALTUUDET JA SYSTEEMIHAKEMISTO

MUITA TIETOKANTAOBJEKTEJA NÄKYMÄT, SYNONYYMIT, INDEKSOINTI, VALTUUDET JA SYSTEEMIHAKEMISTO MUITA TIETOKANTAOBJEKTEJA NÄKYMÄT, SYNONYYMIT, INDEKSOINTI, VALTUUDET JA SYSTEEMIHAKEMISTO NÄKYMÄT Näkymä (view) on looginen näyte tietokannan tauluista tai näkymistä Näkymä ei voi sisältää SELECT INTO,

Lisätiedot

Sisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä

Sisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä Sisällys 11. Javan toistorakenteet Laskuri- ja lippumuuttujat.. Tyypillisiä ohjelmointivirheitä: Silmukan rajat asetettu kierroksen verran väärin. Ikuinen silmukka. Silmukoinnin lopettaminen break-lauseella.

Lisätiedot

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena Ohjelmointikielet ja -paradigmat 5op Markus Norrena Ko#tehtävä 4 Viimeistele "alkeellinen kuvagalleria". Käytännössä kaksi sivua Yksi jolla voi ladata kuvia palvelimelle (file upload) Toinen jolla ladattuja

Lisätiedot

Metodien tekeminen Javalla

Metodien tekeminen Javalla 1 Metodien tekeminen Javalla Mikä metodi on? Metodin syntaksi Metodi ja sen kutsuminen Parametreista Merkkijonot ja metodi Taulukot ja metodi 1 Mikä metodi on? Metodilla toteutetaan luokkaan toiminnallisuutta.

Lisätiedot

Pikaopas. Ohjeiden etsiminen Hae ohjesisältöä napsauttamalla kysymysmerkkiä.

Pikaopas. Ohjeiden etsiminen Hae ohjesisältöä napsauttamalla kysymysmerkkiä. Pikaopas Microsoft Access 2013 näyttää erilaiselta kuin aiemmat versiot. Tämän oppaan avulla pääset alkuun nopeasti ja saat yleiskuvan uusista ominaisuuksista. Näyttökoon muuttaminen tai tietokannan sulkeminen

Lisätiedot

Aditro Tikon ostolaskujen käsittely versio 6.2.0

Aditro Tikon ostolaskujen käsittely versio 6.2.0 Lokakuu 2012 1 (9) Aditro versio 6.2.0 Päivitysohje Lokakuu 2012 2 (9) Sisällysluettelo 1. Tehtävät ennen versiopäivitystä... 3 1.1. Ohjelmistomuutosten luku... 3 1.2. Aditro Pankkipalvelut yhteensopiva

Lisätiedot

Testidatan generointi

Testidatan generointi Testidatan generointi Anu Ahonen Kevät 2008 Tämä työ on tehty Creative Commons -lisenssin alla Työn tarkasti 9.4.2008 Jouni Huotari (JAMK/IT) 1 SISÄLTÖ 1 TYÖN LÄHTÖKOHDAT JA TOTEUTUS...2 2 TESTIDATAN GENEROINTI

Lisätiedot

Ohjelmointityö 65 Tekstinmuotoilu ohjelma. Dokumentaatio. Aki Heikkinen (155394)

Ohjelmointityö 65 Tekstinmuotoilu ohjelma. Dokumentaatio. Aki Heikkinen (155394) Ohjelmointityö 65 Tekstinmuotoilu ohjelma Dokumentaatio Aki Heikkinen (155394) 15.6.2007 Sisällysluettelo 1. Tehtävän määrittely ja ratkaisuperiaate... 1 1.1. Tehtävän määrittely... 1 1.2. Ratkaisuperiaate...

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

SQL Server 2008 asennus

SQL Server 2008 asennus SQL Server 2008 asennus 1. Yleistä... 3 2. Edellytykset... 3 3. SQL Server 2008 Express asennus... 4 4. Yhteystiedot... 6 2/6 1. YLEISTÄ Tässä ohjeessa käydään vaiheittain Microsoft SQL Server 2008 tietokantaohjelmiston

Lisätiedot

TIETORAKENTEET JA ALGORITMIT

TIETORAKENTEET JA ALGORITMIT TIETORAKENTEET JA ALGORITMIT Timo Harju 1999-2004 1 typedef link List; /* Vaihtoehtoisia nimiä */ typedef link Stack; /* nodepointterille */ typedef link Queue typedef struct node Node; /* itse nodelle

Lisätiedot

ASP ja DHTML. 27.8.2004 Seppo Räsänen

ASP ja DHTML. 27.8.2004 Seppo Räsänen ASP ja DHTML 27.8.2004 Seppo Räsänen Liite 3 Sisällys 1 Tietokantojen käyttö sivuilla ASP-tekniikka...3 1.1. ASP ja VBScript...3 1.2. ASP ja J(AVA)Script...9 1.3. ASP ja Access...9 Lähteet...9 Himapizza-esimerkki...10

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

815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset

815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset Harjoituksen aiheena ovat aliohjelmat ja abstraktit tietotyypit sekä olio-ohjelmointi. Tehtävät tehdään C-, C++- ja Java-kielillä.

Lisätiedot

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

Tällä viikolla. Kotitehtävien läpikäynti Aloitetaan Pelifirman tietovaraston suunnittelu Jatketaan SQL-harjoituksia Tällä viikolla Kotitehtävien läpikäynti Aloitetaan Pelifirman tietovaraston suunnittelu Jatketaan SQL-harjoituksia 1.) Mainitse tietokonepelistä (kuvitteellisesta tai todellisesta) esimerkkitilanteita,

Lisätiedot

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI Tarkastellaan Tietokannan fyysistä suunnittelua Menetelmän vaihetta 4 Looginen suunoitelma muutetaan toimiviksi tauluiksi Id enimi snimi muuta 1 Aki Joki xxx

Lisätiedot

6 WWW-tietokantasovellukset 103. 7 Relaatiotietokannan suunnittelusta 134

6 WWW-tietokantasovellukset 103. 7 Relaatiotietokannan suunnittelusta 134 5.5 Tietokannan käyttö ohjelmasta 91 5.5.1 Sulautettu SQL 92 5.5.2 Tietokannan käyttö liittymäkirjaston avulla 94 5.5.3 JDBC:n perusteet 95 5.5.4 Tietokantaohjelmointikielet 102 6 WWW-tietokantasovellukset

Lisätiedot

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen Taulukot: Array Taulukko Javassa pitää aina perustaa (new) Yksinkertaisessa tilanteessa taulukon koko tiedetään etukäteen ja

Lisätiedot

OHJ-5010 Hajautettujen järjestelmien perusteet

OHJ-5010 Hajautettujen järjestelmien perusteet OHJ-5010 Hajautettujen järjestelmien perusteet Arkkitehtuureista (1/2) Kari Systä Kari.systa@tut.fi 1 Yleistä Uusimman tiedon mukaan ensimmäinen tentti on 19.5.2012 kello 09-12. Kurssin kotisivuilla http://www.cs.tut.fi/~hajap/

Lisätiedot

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Tietorakenneluokkia 2: HashMap, TreeMap

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Tietorakenneluokkia 2: HashMap, TreeMap Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Tietorakenneluokkia 2: HashMap, TreeMap Tietorakenneluokkia ja -rajapintoja Java tarjoaa laajan kokoelman tietorakennerajapintoja ja - luokkia. Aiemmin

Lisätiedot

Ohjelmointityö 3. Mikko Laamanen 185667

Ohjelmointityö 3. Mikko Laamanen 185667 Ohjelmointityö 3 Mikko Laamanen 185667 Sisällysluettelo Tehtävän määrittely ja ratkaisuperiaate... 1 Tehtävän määrittely... 1 Ratkaisuperiaate... 1 Ohjelman käyttöohje... 1 Syötteet ja tulosteet... 1 Ohjelman

Lisätiedot