Datová vrstva informačního systému. Miroslav Beneš

Podobné dokumenty
Datová vrstva informačního systému. Java Database Connectivity JDBC. Obsah přednášky JDBC. Datová vrstva informačního systému

Tvorba informačních systémů

Tvorba informačních systémů

Tvorba informačních systémů

Michal Krátký, Miroslav Beneš

4. lekce Přístup k databázi z vyššího programovacího jazyka

Použití databází na Webu

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

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

Databázové a informační systémy

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

Michal Krátký, Miroslav Beneš

TÉMATICKÝ OKRUH TZD, DIS a TIS

Návrh a tvorba WWW stránek 1/14. PHP a databáze

Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5);

Databázové a informační systémy Jana Šarmanová

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

Tvorba informačních systémů

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

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 10.4.

Klíčová slova: dynamické internetové stránky, HTML, CSS, PHP, SQL, MySQL,

Embedded SQL v C/C++ úvod. Administrace Oracle Kateřina Opočenská

STARÁ DOBRÁ JAVA A PERSISTENCE S CACHÉ

Tvorba informačních systémů

Úvod do databází. Modelování v řízení. Ing. Petr Kalčev

Databázové systémy úvod

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

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni

Databázové systémy, MS Access. Autor: Ing. Jan Nožička SOŠ a SOU Česká Lípa VY_32_INOVACE_1130_Databázové systémy, MS Access_PWP

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

5. POČÍTAČOVÉ CVIČENÍ

Využití OOP v praxi -- Knihovna PHP -- Interval.cz

UNIVERZITA PARDUBICE Fakulta elektrotechniky a informatiky. Databázová aplikace pro evidenci mechatronických stavebnic Michal Grof

Databázové systémy trocha teorie

C Přístup k databázím z WWW

Základy informatiky. 08 Databázové systémy. Daniela Szturcová

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

Semestrální práce z DAS2 a WWW

MySQLi (objektově) Příklad vytvoření instance třídy včetně parametrů pro připojení: $mysqli = new mysqli('localhost', 'login', 'heslo', 'databaze');

RMI - Distribuované objekty v Javě

RMI Remote Method Invocation

Základy informatiky. 06 Databázové systémy. Kačmařík/Szturcová/Děrgel/Rapant

1 Úvod. J. Zendulka: Databázové systémy - 1 Úvod 1

Tvorba WWW stránek. přehled technologií používaných na webu principy jednotlivých technologií a možnosti jejich vzájemného kombinování

Text úlohy. Systémový katalog (DICTIONARY):

Tvorba informačních systémů

Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML

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

C Přístup k databázím z WWW

J. Zendulka: Databázové systémy - 1 Úvod Intuitivní vymezení pojmu databáze

Java a Caché IV: Manipulace s objekty

Střední odborná škola a Střední odborné učiliště, Hořovice

Databázové systémy II. KIV/DB2 LS 2007/2008. Zadání semestrální práce

Jazyk C# - přístup k datům

Java Database Connectivity with JDBC

Sada 1 - PHP. 14. Úvod do jazyka SQL

FIREBIRD relační databázový systém. Tomáš Svoboda

SYBASE ADAPTIVE SERVER JAVA V DATABÁZI

Databáze. Velmi stručný a zjednodušený úvod do problematiky databází pro programátory v Pythonu. Bedřich Košata

Západočeská univerzita v Plzni Katedra informatiky a výpočetní techniky. 9. června krovacek@students.zcu.cz

Semináˇr Java X J2EE Semináˇr Java X p.1/23

DUM 11 téma: Databázové jazyky a servery

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 26.3.

Databázové systémy a SQL

Bc. David Gešvindr MSP MCSA MCTS MCITP MCPD

Platforma.NET 11.NET Framework 11 Visual Basic.NET Základní principy a syntaxe 13

CSPUG 2011-květen. GridSQL a pg-pool II. Vratislav Beneš benes@optisolutions.cz

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 3.4.

InterSystems Caché Post-Relational Database

Databáze v Java aplikacích, JPA Handout

Úvod do Javy, JDBC a multimediální databáze

Michal Krátký, Miroslav Beneš

Univerzita Pardubice

Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MySQL základní pojmy, motivace Ing. Kotásek Jaroslav

ÚVOD DO DATABÁZÍ. Metodické listy pro předmět

Inovace a zkvalitnění výuky prostřednictvím ICT. Základní seznámení s MySQL Ing. Kotásek Jaroslav

Databázové systémy. Tomáš Skopal. * embedded SQL * externí aplikace. - Databázové aplikace

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

7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS

Server-side technologie pro webové aplikace

nástroj pro jednoduchou správu a vedení agendy studentských počítačových sítí na kolejích SU OPF Karviná Ing.

Bezpečnost a bezpečné programování

1. Webový server, instalace PHP a MySQL 13

8.2 Používání a tvorba databází


language="javascript">... </script>.

Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava

Programování v jazyku C# II. 5.kapitola

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

Komponenty v.net. Obsah přednášky

Jazyk C# - přístup k datům

Architektura, design, konstrukce

Virtuální privátní databáze

INOVACE PŘEDMĚTŮ ICT. MODUL 11: PROGRAMOVÁNÍ WEBOVÝCH APLIKLACÍ Metodika

Úvod do Javy, JDBC a multimediální databáze

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

A5M33IZS Informační a znalostní systémy. O čem předmět bude? Úvod do problematiky databázových systémů

Datablades včera, dnes a zítra

Transkript:

Datová vrstva informačního systému Miroslav Beneš

Obsah přednášky JDBC architektura ovladače použití ODBC architektura ovladače a zdroje dat použití PHP & MySQL Datová vrstva informačního systému 2

Java Database Connectivity JDBC

JDBC rozhraní pro unifikovaný přístup k datům použití i mimo databáze data ve formě tabulek (CSV, XLS,...) ovladače jsou k dispozici pro většinu databázových systémů inspirováno rozhraním ODBC objektové rozhraní možnost spolupráce s ODBC Datová vrstva informačního systému 4

Architektura JDBC Aplikační kód JDBC API Ovladač JDBC java.sql.* javax.sql.* DB API Databáze Datová vrstva informačního systému 5

Architektura JDBC ResultSet ResultSet ResultSet Statement PreparedStatement CallableStatement Aplikace Connection DriverManager Oracle driver JDBC-ODBC bridge Sybase driver ODBC driver Datová vrstva informačního systému 6

JDBC ovladač zprostředkování komunikace aplikace s konkrétním typem databáze implementován obvykle výrobcem databáze dotazovací jazyk SQL předá se databázi ovladač vyhodnotí přímo reprezentován specifickou třídou sun.jdbc.odbc.jdbcodbcdriver com.mysql.jdbc.driver Datová vrstva informačního systému 7

Typy JDBC ovladačů Typ 1: využívá ODBC (přes JDBC-ODBC bridge) obtížně konfigurovatelné Typ 2: komunikace s nativním ovladačem Typ 3: komunikuje s centrálním serverem (Network Server) síťovým protokolem pro rozsáhlé heterogenní systémy Typ 4: založen čistě na jazyce Java přímý přístup do databáze Datová vrstva informačního systému 8

Registrace ovladače konkrétní ovladač je pevně spojen s aplikací new com.mysql.jdbc.driver() výběr ovladače za běhu aplikace String drivername = com.mysql.jdbc.driver ; try { Class.forName(driverName); } catch( ClassNotFoundException e) { // obsluha výjimky } Datová vrstva informačního systému 9

Identifikace spojení jdbc:driver:database jdbc:odbc:datasource;attr=value; Příklad: jdbc:mysql://localhost/dais3?user=dais3 &password=dais3 &useunicode=true &characterencoding=iso-8859-2 Datová vrstva informačního systému 10

Připojení k databázi Connection con = DriverManager.getConnection( ) url, uživatel, heslo 1. DriverManager se dotáže všech registrovaných ovladačů 2. Rozpozná-li ovladač své url, vrátí objekt Connection Datová vrstva informačního systému 11

Objekt Statement Reprezentuje SQL příkaz: Statement PreparedStatement CallableStatement Vytvoření instance příkazu: Statement stmt = con.createstatement(); Provedení příkazu ResultSet rs = stmt.executequery( SELECT * FROM t ); int num = stmt.executeupdate( DELETE * FROM t ); Datová vrstva informačního systému 12

Objekt ResultSet Reprezentuje výsledek dotazu SELECT Statement stmt = con.createstatement(); ResultSet rs = stmt.executequery( SELECT * FROM uzivatel ); while( rs.next() ) { String login = rs.getstring( login ); String jmeno = rs.getstring( jmeno ); } rs.close(); stmt.close(); Datová vrstva informačního systému 13

Ošetření chyb public class SQLException extends Exception try { } catch( SQLException e) { while( e!= null ) { System.out.println(e.getMessage()); System.out.println(e.getSQLState()); System.out.println(e.getErrorCode()); e = e.getnextexception(); } } Datová vrstva informačního systému 14

Parametrizované příkazy Možnost předkompilace opakované provedení příkazu Parametry označené znakem? indexované od 1 INSERT INTO uzivatel(login,jmeno) VALUES(?,?) Datová vrstva informačního systému 15

Parametrizované příkazy PreparedStatement pstmt = con.preparestatement( INSERT VALUES(?,?) ); pstmt.clearparameters(); pstmt.setstring(1, wal007 ); pstmt.setnull(2, Types.VARCHAR); Datová vrstva informačního systému 16

Transakce try { con.setautocommit(false); stmt.executeupdate( ); con.commit(); } catch( SQLException e ) { con.rollback(); } Datová vrstva informačního systému 17

Open Database Connectivity ODBC

ODBC Specifikace API pro databáze Nezávislé na databázi a jazyce Databázově závislé ovladače Správce ovladačů Driver Manager Založeno na specifikaci X/Open a ISO: SQL Call Level Interface (SQL/CLI) Datová vrstva informačního systému 19

Architektura ODBC Aplikace ODBC API Správce ovladačů ODBC API (SPI) Ovladač Ovladač Ovladač Zdroj dat Zdroj dat Zdroj dat Datová vrstva informačního systému 20

Typy ovladačů Ovladače založené na souborech přímý přístup k datům (ovladač = zdroj dat) analýza a interpretace dotazů dbase Ovladače založené na SŘBD dotazy se předávají ke zpracování SŘBD transformace ODBC SQL na konkrétní dialekt SQL Datová vrstva informačního systému 21

Typy zdrojů dat Systémové datové zdroje informace jsou uloženy přímo v systému (registry) identifikovány jménem zdroje Souborové datové zdroje informace jsou uloženy v samostatném souboru (*.dsn) možnost sdílení, přenosu na jiné počítače identifikovány jménem souboru Datová vrstva informačního systému 22

Příklad systémového zdroje [HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\Dais3] "Driver"="C:\\WINDOWS\\System32\\myodbc.dll" "Description"="Data Source for DAIS3" "Database"="dais3" "Server"="localhost" "User"="dais3" "Password"="dais3" "Port"="" "Option"="0" "Stmt"="" Datová vrstva informačního systému 23

Postup 1. Připojení k datovému zdroji 2. Inicializace 3. Vytvoření a provedení dotazu 4. Získání výsledku 5. Ukončení transakce 6. Odpojení od datového zdroje Datová vrstva informačního systému 24

Připojení k datovému zdroji // Alokace zástupce pro správce ovladačů ODBC SQLHENV henv; SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&hEnv); // Deklarace požadované verze ODBC SQLSetEnvAttr(hEnv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER) SQL_OV_ODBC3, 0); // Alokace zástupce pro databázové připojení SQLHDBC hdbc1; SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc); // Připojení k databázi SQLConnect(hDbc, database, SQL_NTS, user, SQL_NTS, password, SQL_NTS); // jméno zdroje dat // uživatel // heslo Datová vrstva informačního systému 25

Inicializace aplikace // Získání informací o SŘBD, ovladači,... SQLCHAR dbms_name[40]; SQLGetInfo(hDbc, SQL_DBMS_NAME, dbms_name, sizeof(dbms_name), NULL); // Alokace zástupce pro příkaz (dotaz) SQLHANDLE hstmt; SQLAllocHandle(SQL_HANDLE_STMT,hDbc,&hStmt); Datová vrstva informačního systému 26

Vytvoření a provedení dotazu Přímé provedení dotazu SQLCHAR query[] = INSERT INTO ; SQLExecDirect(hStmt, query, SQL_NTS); Připravený dotaz SQLCHAR* query = SELECT jmeno FROM uziv WHERE login=? ; SQLPrepare(hstmt, query, SQL_NTS); SQLBindParameter(hStmt, 1, ); SQLExecute(hStmt); Datová vrstva informačního systému 27

Získání výsledku // Svázání proměnných s výsledkem dotazu SQLCHAR jmeno[30]; SQLINTEGER jmeno_ind; SQLBindCol(hStmt, 1, SQL_C_CHAR, jmeno, sizeof(jmeno), &jmeno_ind); // Čtení výsledků while ( SQLFetch(hStmt)!= SQL_NO_DATA ) { if( jmeno_ind!= SQL_NULL_DATA ) cout << jmeno; } Datová vrstva informačního systému 28

Odpojení od zdroje dat // uvolnění zástupce příkazu SQLFreeHandle(SQL_HANDLE_STMT, hstmt); // odpojení od databáze SQLDisconnect(hDbc); // uvolnění zástupce příkazu SQLFreeHandle(SQL_HANDLE_DBC, hdbc); // uvolnění zástupce prostředí SQLFreeHandle(SQL_HANDLE_ENV, henv); Datová vrstva informačního systému 29

PHP & MySQL

Přístup k databázím z PHP Modulární struktura sdílené knihovny (.dll,.so) Podpora mnoha databázových rozhraní ODBC MySQL, PostgreSQL Microsoft SQL Server Oracle, Sybase, Informix dbase Datová vrstva informačního systému 31

Databáze MySQL MySQL Server Databáze Tabulky Datová vrstva informačního systému 32

Správa databáze Standardní klienti mysql mysqladmin mysqldump Aplikace s grafickým rozhraním MySQL Control Center WinMySQLAdmin Aplikace s WWW rozhraním phpmyadmin Datová vrstva informačního systému 33

Připojení k databázi // Připojení k serveru + autentizace mysql_connect("localhost", "uziv", "heslo"); // Výběr databáze mysql_select_db( databaze"); Datová vrstva informačního systému 34

Provedení dotazu $query = SELECT login,jmeno FROM uziv ; $h = mysql_query($query); while( $r = mysql_fetch_object($h) ) { echo $r->login: $r->jmeno\n ; } mysql_free_result($h); Datová vrstva informačního systému 35

Provedení dotazu $h = mysql_query($query); $n = mysql_num_rows($h); for( $i = 0; $i < $n; $i++) { $r = mysql_fetch_array($h); echo <tr>\n ; foreach( $r as $val ) echo \t<td>$val</td>\n ; echo </tr>\n ; } mysql_free_result($h); Datová vrstva informačního systému 36

Další zdroje informací ODBC www.microsoft.com/data/odbc/ www.unixodbc.org/ JDBC java.sun.com/products/jdbc PHP & MySQL www.php.net www.mysql.com www.phpmyadmin.net Datová vrstva informačního systému 37