Vytváření uživatelských datových typů a funkcí v Javě

Podobné dokumenty
TÉMATICKÝ OKRUH Softwarové inženýrství

Vytváření a použití knihoven tříd

10 Balíčky, grafické znázornění tříd, základy zapozdření

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

ŠKOLENÍ PROGRAMOVACÍHO JAZYKA JAVA JAVA - ZÁKLADY

Abstraktní datové typy: zásobník

Softwarové komponenty a Internet

Jak efektivně ochránit Informix?

O Apache Derby detailněji. Hynek Mlnařík

Ukládání a vyhledávání XML dat

Matematika v programovacích

MBI - technologická realizace modelu

Datablades včera, dnes a zítra

ADMINISTRACE POČÍTAČOVÝCH SÍTÍ. OPC Server

Jalapeño: pekelně ostrá Java persistence v Caché. Daniel Kutáč Senior Sales Engineer

Nové vlastnosti IDS Beta 3

Fyzické uložení dat a indexy

První pomoc pro DBA. administrátory CIDUG. Milan Rafaj IBM Česká republika

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím

1 Webový server, instalace PHP a MySQL 13

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

1 - Úvod do platformy.net. IW5 - Programování v.net a C#

Obsah. Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13

Technická podpora IBM Informix. Jan Musil IT Specialist SWG IBM

RMI Remote Method Invocation

Common Object Request Broker Architecture

Stream API. Petr Krajča. Základy programovaní 4 (Java) Katedra informatiky Univerzita Palackého v Olomouci

Seminář Java II p.1/43

11. Přehled prog. jazyků

Typ 2 - připojení prostřednictvím kódu nativního klienta pro přístup k síti

Google Web Toolkit. Martin Šurkovský, SUR března Katedra informatiky

Programovací jazyk Java

Zálohování INFORMIXu z historie po současnost CIDUG. Petr Pomykáček Petr.Pomykacek@d-prog.cz CIDUG

TÉMATICKÝ OKRUH Softwarové inženýrství

8 Třídy, objekty, metody, předávání argumentů metod

Předměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Obsah. Kapitola 1. Kapitola 2. Kapitola 3. Kapitola 4. Úvod 11. Stručný úvod do relačních databází 13. Platforma 10g 23

Předmluva k aktuálnímu vydání Úvod k prvnímu vydání z roku Typografické a syntaktické konvence... 20

Vývoj moderních technologií při vyhledávání. Patrik Plachý SEFIRA spol. s.r.o.

JAVA Moduly Java, letní semestr 2018

Databáze II. 1. přednáška. Helena Palovská

Programování a implementace Microsoft SQL Server 2014 databází

1. Webový server, instalace PHP a MySQL 13

George J. Klir. State University of New York (SUNY) Binghamton, New York 13902, USA

Administrace Oracle. Práva a role, audit

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Diagnostika webových aplikací v Azure

Obsah. Předm luva 3. Obsah \ 6

Programování v C++ 2, 4. cvičení

Algoritmizace a programování

Jini (pronounced GEE-nee) Cvičení 8 - DS 2006

Semináˇr Java X JDBC Semináˇr Java X p.1/25

Vzdělávací oblast: Informatika a informační a komunikační technologie Vzdělávací obor: Programování. Předmět: Programování

Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9

Algoritmizace, základy programování, VY_32_INOVACE_PRG_ALGO_01

2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena.

PŘETĚŽOVÁNÍ OPERÁTORŮ

Microsoft SharePoint Portal Server Zvýšená týmová produktivita a úspora času při správě dokumentů ve společnosti Makro Cash & Carry ČR

Unifikovaný modelovací jazyk UML

InTouch 8.0 Subsystém distribuovaných alarmů

Základy objektové orientace I. Únor 2010

Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů

Databázové systémy. Doc.Ing.Miloš Koch,CSc.

Jednorázová hesla pro zvýšení bezpečnosti vzdáleného přístupu mobilních uživatelů

Remote Method Invocation RMI

Generické programování

UDS for ELO. Univerzální datové rozhraní. >> UDS - Universal Data Source

Algoritmizace. Cíle předmětu

Třídy. Instance. Pokud tento program spustíme, vypíše následující. car1 má barvu Red. car2 má barvu Red. car1 má barvu Blue.

Dnešní téma. Oblasti standardizace v ICT. Oblasti standardizace v ICT. Oblasti standardizace v ICT

InterSystems Caché Post-Relational Database

Osnova. GIOP a IIOP IDL IOR POA. IDL Klient Server. 2 Historie. 3 Princip a základní pojmy. 4 Implementace. 5 Aplikace CORBA

Bridge. Známý jako. Účel. Použitelnost. Handle/Body

Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů CZ.1.07/1.3.12/

Regulární výrazy. Vzory

SYBASE ADAPTIVE SERVER JAVA V DATABÁZI

Audit DB. Referát. Vypracoval: Zdeněk Doležal MFF UK Praha 11/5/06

Ukázka knihy z internetového knihkupectví

Monitorování a audit databází v reálném čase. Ing. Jan Musil IBM Česká republika

IRAE 07/08 Přednáška č. 1

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

1. Programování proti rozhraní

Struktura pamětí a procesů v DB Oracle. Radek Strnad

7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd

Obsah. Začínáme programovat v Ruby on Rails 9. Úvod Vítejte v Ruby 15. O autorovi 9 Poděkování 9

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech

PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

Novinky ve Visual Studio Tomáš Kroupa

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Stručný obsah. část III Aktualizace dat Kapitola 10: Aktualizace databáze 257 Kapitola 11: Integrita dat 275 Kapitola 12: Zpracování transakcí 307

Java a Caché IV: Manipulace s objekty

Úvod do programovacích jazyků (Java)

Tvorba informačních systémů

Možnosti propojení Lotus Notes/Domino a jiných systémů. Ondřej Fuxa Your System spol. s r.o.

STARÁ DOBRÁ JAVA A PERSISTENCE S CACHÉ

Databázová řešení IBM

Maturitní témata Školní rok: 2015/2016

Transkript:

IBM Software Group Vytváření uživatelských datových typů a funkcí v Javě Jan Musil (jan_musil@cz.ibm.com) IBM Certified System Administrator - Informix Dynamic Server V11 2007 IBM Corporation

Přehled prezentace Přehled technologie J/Foundation Popis Java Virtual procesoru Konfigurace databázového serveru pro technologii J/Foundation Vytváření Java uživatelských funkcí Kompilování a instalace Java UDR do databázového serveru Přehled J/Foundation knihoven pro psaní Java UDR Opaque datové typy a jejich implementace v Java prostředí Praktické ukázky 2

Přehled technologie J/Foundation Infrastruktura poskytovaná databázovým serverem pro psaní Java uživatelských funkcí (Java UDR) resp. podporu uživatelských datových typů Databázový server váže definici SQL funkce (procedury) se spustitelnou Java funkcí Databázový server provádí mapování mezi SQL datovým typem a Java objektem pro předávání argumentů a návratových hodnot Technologie poskytuje podporu pro řešení chybových stavů Domovský adresář: $INFORMIXDIR/extend/krakatoa 3

Popis Java Virtual procesoru Java Virtual Procesor (Java VP) je specializovaný proces databázového serveru, který poskytuje prostředí pro vykonávání Java UDR V každém Java VP je zapouzdřen Java Virtual Machine (JVM) Prostřednictvím Java VP jsou vykonávány také všechny SQL příkazy zadávané prostřednictvím Java UDR Součástí Java VP je CPU VP, který okamžitě vykonává všechny SQL příkazy Nedochází tak k předávání SQL příkazů mezi Java VP a CPU VP SINGLE_CPU_VP = 0 i v případě konfigurace 1 CPU VP 4

Konfigurace databázového serveru pro technologii J/Foundation Smart blob prostor pro Java JAR JVP properties konfigurační soubor ONCONFIG konfigurační parametry Proměnné prostředí Podpora GLS 5

Smart blob prostor pro Java JAR Databázový server ukládá Java JAR soubory do smart blob prostoru Smart blob prostor musí být vytvořen a nastaven konfiguračním parametrem SBSPACENAME 6

JVP properties konfigurační soubor Cesta a jméno jsou nastaveny ONCONFIG konfiguračním parametrem JVPPROPFILE Obsahuje nastavení pro Java VP Předpis pro nastavení (přednastavené hodnoty) jsou v souboru $INFORMIXDIR/extend/krakatoa/.jvpprops.template Nastavení cp $INFORMIXDIR/extend/krakatoa/.jvpprops.template $INFORMIXDIR/extend/krakatoa/.jvpprops JVPPROFILE $INFORMIXDIR/extend/krakatoa/.jvpprops 7

ONCONFIG konfigurační parametry JVPHOME JVPLOGFILE JVPPROPFILE JVPJAVAVM VPCLASS JVMTHREAD JVPJAVALIB $INFORMIXDIR/extend/krakatoa $INFORMIXDIR/extend/krakatoa/jvp.log $INFORMIXDIR/extend/krakatoa/.jvpprops server jvp,num=1 native /lib/sparc/ JVPCLASSPATH $INFORMIXDIR/extend/krakatoa/krakatoa.jar: $INFORMIXDIR/extend/krakatoa/jdbc.jar (krakatoa_g.jar a jdbc_g.jar jsou knihovny pro debug mód) 8

Proměnné prostředí AFDEBUG (AFCRASH) JVM_MAX_HEAP_SIZE JAR_TEMP_PATH JAVA_COMPILER 9

Podpora GLS IBM Software Group Information Management Software Data v databázi jsou uložena v DB_LOCALE kódové sadě Java UDR zpracovává data v Unicode Při předávání dat mezi databází a Java UDR dochází ke konverzi z DB_LOCALE na Unicode případně z Unicode na DB_LOCALE 10

Vytváření Java uživatelských funkcí Každá Java UDR se mapuje na statickou Java metodu, která je součástí JAR archivu Mapování SQL datových typů na Java objekty se provádí na základě specifikace Informix JDBC ovladače Rozlišujeme Java uživatelské funkce a procedury Funkce vrací hodnoty Procedura nevrací hodnoty Java UDR se mohou použít jako Funkce nebo procedury koncového uživatele Agregační funkce Funkce pro paralelní zpracování CAST funkce Operátorové funkce iterátorové funkce funkcionální indexy podpora opaque datových typů funkce negace 11

Kompilování a instalace Java UDR do databázového serveru public class Myfce { public static String myfce(string arg) throws SQLException { String regval; return regval; } } Myfce.java $ javac Myfce.java $ jar cvf fce.jar Myfce.class execute procedure install_jar("file:/home/informix/work/fce.jar","fce_jar",0); myfce.sql create function myfce(lvarchar) returns lvarchar external name 'myfce_jar:myfce.myfce(java.lang.string)' language java; $ dbaccess db myfce.sql 12

Přehled J/Foundation knihoven pro psaní Java UDR Všechny běžné Java knihovny z JDK Java.util.*, java.io.*, java.net.*, java.rmi.*, java.lang.*, java.sql.* a podobně Nikoliv však grafické a s uživatelským rozhraním, jako java.awt.*, java.applet.* a podobně Informix JDBC Driver API knihovny (1.0) Informix rozšíření k JDBC Driver (2.0) Rozšíření pro uživatelské datové typy resp. blob/clob objekty Další Informix rozšíření com.informix.udr.* 13

Co je to opaque datový typ? Opaque datový typ je uživatelsky definovaný datový typ jehož interní struktura je definovaná uživatelem a je neznámá databázovému serveru Funkce potřebné pro práci s opaque datovým typem musí být také uživatelsky definované Definice opaque datového typu vyžaduje (napsané v C nebo Java) Datovou strukturu, která definuje, jak bude datový typ interně uložen v databázových strukturách Podpůrné funkce, které umožňují databázovému serveru s ním pracovat Volitelné modifikátory a další funkce 14

Implementace Opaque datových typů v Java prostředí Java třída rozšířená o SQLData interface Základní metody třídy (konstruktor, konverzní metody, ) Metody SQLData interface převod I/O datového toku do/z interní struktury readsql(), writesql() a getsqltypename() Metody pro podporu opaque datového typu I/O metody pro podporu SQL (CAST operátorové funkce) Metody pro implementaci základních operací (=,<,>,=<,>=,<>) Metody pro podporu vytváření B-Tree indexů 15

Integrace Java opaque datových typů v IDS Vytvoření SQL opaque typu CREATE OPAQUE TYPE Mapování SQL opaque typu na Java třídu EXECUTE PROCEDURE setudtextname Registrace funkcí pro podporu opaque datového typu Vytvoření konverzních pravidel CREATE IMPLICIT/EXPLICIT CAST 16

Praktická ukázka Vytvoření nového opaque datového typu pro ukládání rodných čísel Jméno nového datového typu: rodcis Kontrola tvaru RČ Délka Datum narození a koncovku odděluje / Kontrolní číslici pro RČ od 1.1.1954 Konzistence pomocí kontrolní číslice Implementace B-Tree indexování Implementace operátorů = <> < > =< => Aplikace pravidla porovnávání podle data narození bez ohledu na pohlaví a koncovku RČ 17

18

Jan Musil jan_musil@cz.ibm.com 19