RDBMS - Yhteyskäytännöt



Samankaltaiset tiedostot
Helsingin yliopisto, TKTL Tietokantojen perusteet, k 2000 Tietokantaohjelmointi Harri Laine 1. SQL:n käyttö ohjelmissa

Sovellusarkkitehtuurit

Sovellusarkkitehtuurit

EXEC SQL BEGIN DECLARE SECTION

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

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

Java ja tietokannan käsittely (JDBC)

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

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

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

Tietokantaohjelmoinnin tekniikkoja Java-kielellä

Sovellusarkkitehtuurit

Tietokannat II -kurssin harjoitustyö

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 K2009

6 WWW-tietokantasovellukset Relaatiotietokannan suunnittelusta 134

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

Tietokannan webbikytkentä. Janne Petäjä

Koira testissä vai Racci tuotannossa O10G/IAS10 Linuxilla

Rajapinta (interface)

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

T Hypermediadokumentin laatiminen. Sisältö. Tavoitteet. Mitä on www-ohjelmointi? Arkkitehtuuri (yleisesti) Interaktiivisuuden keinot

5. HelloWorld-ohjelma 5.1

Listarakenne (ArrayList-luokka)

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

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

Sisältö. Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2

Tuottavuutta sovelluskehitykseen Oraclen työkaluilla: JDeveloper 10g ja HTML DB OUGF Syysseminaari

Microsoft Visual Studio 2005

TIETOKANNAT JOHDANTO

1. Olio-ohjelmointi 1.1

812341A Olio-ohjelmointi, IX Olioiden välisistä yhteyksistä

A) on käytännöllinen ohjelmointitekniikka. = laajennetaan aikaisemmin tehtyjä luokkia (uudelleenkäytettävyys)

Basics of databases

Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 26.2

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

Ohjelmointi 2 / 2008 Välikoe / Pöytätestaa seuraava ohjelma.

Microsoft Visual J++ ohjelmointiympäristö

Miten Hadoopista tuli helppoa? Jarno Lindqvist Principal Advisor SAS

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Poikkeukset ja tietovirrat: Virhetilanteiden ja syötevirtojen käsittely

MICROSOFT LINQ. Susanna Salonen

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

PostgreSQL:n ja JDBC-ajurin asennus- ja käyttöohje

Tietokannanhoitaja DBA (Database Administrator) ja tietokannan hallinta

Sisältö. Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2

YHTEYSSUHDE (assosiation)

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

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

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

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

Mikä yhteyssuhde on?

Web Services tietokantaohjelmoinnin perusteet

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

WWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa

public static void main (String [] args)

Delegaatit ja tapahtumakäsittelijät

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

Ohjelmistoteknologioiden koulutus: Web-sovelluskehitys, Java Server. Infotilaisuus klo 10:00

5. HelloWorld-ohjelma 5.1

1. Omat operaatiot 1.1

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä

Metodien tekeminen Javalla

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

Java-kielen perusteita

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

ASP ja DHTML Seppo Räsänen

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

Tehtävä 1. Tehtävä 2. Arvosteluperusteet Koherentti selitys Koherentti esimerkki

1 Tehtävän kuvaus ja analysointi

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

Java-kielen perusteet

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

Java-kielen perusteet

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

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

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

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

EJB-komponenttien tietokantakytkentä

Tapahtumapohjainen ohjelmointi. Juha Järvensivu 2007

Ohjelmoinnin perusteet, syksy 2006

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

Muita tietokantaobjekteja. Näkymät, synonyymit, indeksointi, valtuudet ja systeemihakemisto


Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki

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

20. Javan omat luokat 20.1

Rinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti

Sisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang

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

Lohkot. if (ehto1) { if (ehto2) { lause 1;... lause n; } } else { lause 1;... lause m; } 15.3

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 5: Python

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Standardi- ja tietorakenneluokkia

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

14. Poikkeukset 14.1

Transkriptio:

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 Pool... 10 Sovelluspalvelimet ja monikerrosarkkitehtuuri... 11 J2EE -arkkitehtuuri... 11

HAAGA-HELIA Heti-09 2 (11) Johdanto Tässä materiaalissa esitellään keskeisiä ohjelmallisen tietokannan käytön rajapintoja, kuten ODBC (erityisesti JDBC) Lisätietoa aiheesta saat Martti Laihon Sovellusarkkitehtuurit-luentomateriaalista osoitteessa http://myy.helia.fi/~ict03d/rdbms/mats/sovellusarkkite htuurit.pdf

HAAGA-HELIA Heti-09 3 (11) Upotettu SQL Embedded SQL (ESQL) ensimmäinen stardardoitu SQL-pohjainen tietokantaliittymä, joka mahdollisti lähes RDBMSjärjestelmästä riippumattoman tietokantaohjelmoinnin isäntäkielenä esim. C++, COBOL, Fortran, PL/I SQL-komennot upotetaan isäntäkielen sovelluskoodiin EXEC SQL lauseilla FETCH kommenolla haetaan monirivisestä tulosjoukosta rivi kerrallaan sovellusohjelmassa käsiteltäväksi tietokantakäsittelyssä tapahtuvia virhetilanteita tutkitaan SQLCode- tai SQLState-muuttujien arvoista upotettua SQL kieltä sisältävä sovelluskoodi käännetään ESQL-esikääntäjällä: EXEC SQL komennot käännetään DBMS-järjestelmän funktiokutsuiksi. ratkaisu on järjestelmäsidonnainen SQLJ (SQL:n upottaminen Java-ohjelmakoodiin)

HAAGA-HELIA Heti-09 4 (11) ESQL esimerkki alla osa ESQL-esimerkkiä, jossa C-isäntäkielen ohjelmakoodiin on upotettu SQL-komentoja ((lähde: Oracle Database Application Developer s Guide Fundamentals)...... #define UNAME_LEN 10... 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;...

HAAGA-HELIA Heti-09 5 (11) ODBC Open Database Connectivity universaali tietokantaohjelmoinnin rajapinta ESQL:n jälkeen SQL-standardiin on määritelty SQL/CLI (SQL Call Level Interface), joka määrittää järjestelmäriippumattoman funktiokirjaston SQLkomentojen suoritukseen Microsoft toteutti ODBC API:n lähinnä C/C++ - tietokantaohjelmointia varten ODBC ajuri (driver) muuttaa OCBC API:n funktiokutsut kyseisen DBMS:n funktiokirjaston kutsuiksi Application ODBC Driver Manager SQL Server driver Oracle driver DB2 driver Network SQL Server Oracle DB2 DBMS-riippuva funktiokirjasto

HAAGA-HELIA Heti-09 6 (11) Visual Basic ja ADO ADO (ActiveX Data Objects) Microsoft on rakentanut ADO luokkakirjaston OLE DB päälle helpottamaan Visual Basic tietokantaohjelmointia tietokantaohjelmoinnin keskeiset luokat o Connection luokka Open() metodi Close() o Command luokka Execute() o Recordset luokka Move() o Fields ja Field luokka getstring() etc o Errors ja Error luokka MS:n.NET arkkitehtuurissa kehittyneempi ADO.NET luokkakirjasto

HAAGA-HELIA Heti-09 7 (11) JAVA ja JDBC Java Database Connectivity Sunin Java-kielen tietokantaliittymä ADO:n kaltaisen, mutta puhtaammin SQL-standardia toteuttava luokkakirjasto ohjelmoinnin keskeiset luokat o DriverManager getconnection() o Connection luokka createstatement() preparestatement() close() o Statement luokka executequery() executeupdate() close(). o PreparedStatement luokka setstring(), setint(), set () executequery() executeupdate() close() o ResultSet luokka next() getstring(), get () close() o SQLException luokka

HAAGA-HELIA Heti-09 8 (11) JDBC esimerkki import java.sql.*; class JdbcTest { public static void main (String args []) throws SQLException { String url = " jdbc:oracle:thin:@<server>:<portti>:<sid>"; try { Class.forName("oracle.jdbc.driver.OracleDriver"); } catch(java.lang.classnotfoundexception e) { System.err.print("ClassNotFoundException: "); System.err.println(e.getMessage()); } try { Connection con = DriverManager.getConnection(url,"username","password"); // 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(); stmt.close(); con.close(); } catch(sqlexception ex) { System.err.println("-----SQLException-----" + "\nsqlstate: " + ex.getsqlstate() +", Message: " + ex.getmessage() + ", Vendor SQLcode: " + ex.geterrorcode()); }}} JDBC-ajuri Oracle (Thin) oracle.jdbc.driver.oracledriver SQL Server com.microsoft.sqlserver.jdbc.sqlserverdriver DB2 UDB com.ibm.db2.jcc.db2driver MySQL com.mysql.jdbc.driver MariaDB org.mariadb.jdbc.driver DBMS URL Oracle (Thin) SQL Server DB2 UDB MySQL MariaDB jdbc:oracle:thin:@<server>:<portti>:<sid> jdbc:sqlserver://<server>;databasename=<kanta> jdbc:db2://<server>:50000/<kanta> jdbc:mysql://<server>/<kanta> jdbc:mysql://<server>/<kanta> TAI jdbc:mariadb://<server>/<kanta>

HAAGA-HELIA Heti-09 9 (11) Oracle ja JDBC JDBC OCI ajuri JDBC Thin ajuri o tukee kaikkia Oraclen käyttämiä verkkoprotokollia o tukee vain TCP/IP verkkoprotokollaa o edellyttää vain, että tietokantapalvelimella on Oraclen TNS Listener o (oracle.jdbc.driver.oracledriver) o tietokantapalvelimen osoite jdbc:oracle:thin:@<server>:<portti>:<sid> esim jdbc:oracle:thin:@info9.helia.amk:1526:tux1 Lisätietoja Oraclen JDBC ohjelmoinnista Oracle JDBC Developer s Guide and Reference

HAAGA-HELIA Heti-09 10 (11) Connection Pool Tietokantayhteyden avaaminen melko raskas operaatio Tätä varten sovelluspalvelimella on Connection Pool palvelu Connection Pool sisältää valmiita fyysisiä tietokantayhteyksiä, joita jaetaan väliaikaiseen käyttöön tietokantayhteyden avaaminen siis yleensä looginen operaatio, jossa komponentti ottaa käyttöön olemassaolevan fyysisen tietokantayhteyden tietokantayhteyden sulkeminen on siis yleensä looginen operaatio, jossa komponentti vapauttaa käyttämänsä fyysisen tietokantayhteyden ConnectionPool:iin muiden komponenttien käytettäväksi

HAAGA-HELIA Heti-09 11 (11) Sovelluspalvelimet ja monikerrosarkkitehtuuri J2EE -arkkitehtuuri Web-selain Webpalvelin Sovelluspalvelin html/ Applet/ HTTP SSL Servlet, JSP EJB/ Java-sovellus HTTP SSL JDBC JDBC JDBC DB Kts. lisätietoja Laihon materiaalista