Wie kommen die Befehle zum DBMS



Ähnliche Dokumente
Wie kommen die Befehle zum DBMS

Programmieren und DBMS. Dr. Karsten Tolle

embedded SQL Embedded SQL wurde erstmals im SQL92- Standard definiert.

Java Database Connectivity (JDBC) Walther Rathenau Gewerbeschule 1

seit Java 1.1 Bestandteil der API: packages java.sql, javax.sql

Daten Bank. 4. Vorlesung. Dr. Karsten Tolle PRG2 SS 2012

Kapitel 10. JDBC und SQLJ. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken 1

Datenbank und Informationssysteme

Teil 2-7. Vorlesung. Modul: Programmierung B-PRG Grundlagen der Programmierung II

SQLJ. Standardisierte Java-DB. DB-Schnittstelle. Spezifikationen. Oracle, IBM, Informix, Sybase,, Tandem, Sun, Microsoft stehen dahinter

JDBC. Es kann z.b. eine ODBC-Treiberverbindung eingerichtet werden, damit das JAVA-Programm auf eine ACCESS-DB zugreifen kann.

SQL (Structured Query Language) Schemata Datentypen

Daten Bank. 4. Vorlesung. Dr. Karsten Tolle PRG2 SS 2012

Grundlagen von Datenbanken SS 2010 Kapitel 8: Datenbank-Einbettung in Programmiersprachen Prof. Dr. Stefan Böttcher Universität Paderborn

Java und Datenbanksysteme Datenbankanbindung mit JDBC

Prozedurale Datenbank- Anwendungsprogrammierung

2. Datenbank-Programmierung

Datenbankanwendungen (JDBC)

Datenbanken und Internet. SS2009 DBIS/Dr. Karsten Tolle

Java Application 1 Java Application 2. JDBC DriverManager. JDBC-ODBC Br idge. ODBC Driver Manager. Dr iver C. Dr iver D.

3. Stored Procedures und PL/SQL

DB2 Kurzeinführung (Windows)

Architekturen. Von der DB basierten zur Multi-Tier Anwendung. DB/CRM (C) J.M.Joller

Datenbankentwurf & Datenbankzugriff mit JDBC. Georg Köster Sven Wagner-Boysen

Universität Stuttgart Abteilung Anwendersoftware Steht für Embedded SQL in Java. - Java-Methoden als SQL Stored-Procedures

Teil 2-7. Vorlesung. Modul: Programmierung B-PRG Grundlagen der Programmierung II

Datenbanksysteme I Datenbankprogrammierung Felix Naumann

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

JDBC. Allgemeines ODBC. java.sql. Beispiele

Lehrveranstaltung Grundlagen von Datenbanken

vs. Fehler zur Übersetzungszeit

Oracle: Abstrakte Datentypen:

Datenbanksysteme I Übung: JDBC. Jana Bauckmann

11 Anwendungsprogrammierung

Werkzeuge für Datenbank Handwerker: IBM Data Studio und IBM Optim QWT

Verteidigung gegen SQL Injection Attacks

Folgendes PL/SQL Codefragment zeigt das grundlegende Statement für diesen Test: Java.

Programmieren II. Beispiele für RDBMS. Relationale Datenbanken. Datenbanken SQL. Dr. Klaus Höppner JDBC. Hochschule Darmstadt SS 2008

DB-Programmierung. Lehr- und Forschungseinheit Datenbanken und Informationssysteme 1. Ziele. DB2 Zugriff mit Java selbst programmieren

Verbinden von IBM Informix mit Openoffice mittels JDBC

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Kapitel 10: Datenbankzugriff & Pufferung 2

Datenbanksysteme. Programmieren von Datenbankzugriffen mit JDBC. Burkhardt Renz. Fachbereich MNI Technische Hochschule Mittelhessen

Datenbanken & Informationssysteme Übungen Teil 1

Gesicherte Prozeduren

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick Parameterübergabe...

Client/Server-Programmierung

6.9 Java Server Pages

Einbettung in SQL. Zwei Prinzipien: (1) Statische Einbettung

Beispiel: DB-Mock (1/7)

XAMPP-Systeme. Teil 3: My SQL. PGP II/05 MySQL

OP-LOG

5. Programmierschnittstellen für XML

MySQL Installation. AnPr

Externe Authentifizierung. Externe Authentifizierung IACBOX.COM. Version Deutsch

Transaktionen in der Praxis. Dr. Karsten Tolle

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum:

Interaktive Webseiten mit PHP und MySQL

Datenbanken 1 für Mediennformatiker WS ODBC, JDBC und SQLJ: Datenbank-Anbindung an Anwendungsprogramme

Übung 7 DBMS-FUNKTIONALITÄTEN UND DATENIMPORT

Prozessarchitektur einer Oracle-Instanz

Wie richten Sie Ihr Web Paket bei Netpage24 ein

JDBC Datenzugriff aus Java ETIS SS04

Sage 200 BI Häufige Fehler & Lösungen. Version

4D Server v12 64-bit Version BETA VERSION

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

5. Programmierschnittstellen für XML

Arbeiten mit einem lokalen PostgreSQL-Server

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Datenbanken auf Sybase SQL-Anywhere

Mehr Performance mit JDBC JAVA-Anwendungen und die Oracle-Datenbank. Carsten Czarski Business Unit Database Oracle Deutschland GmbH

Von ODBC zu OLE DB. Neue Möglichkeiten der Datenintegration. Harald Gladytz, Team Vertrieb ESRI Niederlassung Leipzig

Übersicht über Datenbanken

Java: MySQL-Anbindung mit JDBC.

Dieses Dokument soll dem Administrator helfen, die ENiQ-Software als Client auf dem Zielrechner zu installieren und zu konfigurieren.

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Klausur zur Vorlesung Datenbanksysteme I

Lizenzen auschecken. Was ist zu tun?

Prüfungsberatungs-Stunde Datenbanksysteme 1 (Dbs1)

KURZANLEITUNG CYBERDUCK MIT CLOUD OBJECT STORAGE

Timer-Dienst (070212)

8a. Exkurs.NET. 8a.1.NET Architektur

Whitepaper. Produkt: combit Relationship Manager. SQL Server 2008 R2 Express um Volltextsuche erweitern. combit GmbH Untere Laube Konstanz

SEMINAR Modifikation für die Nutzung des Community Builders

Arbeitsgruppe Multimedia DLmeta in echten Anwendungen

Grundlagen von Python

Verbinde die Welten. Von Oracle auf MySQL zugreifen

1. Einleitung Abfrage des COON-Benutzernamens Ändern des Initial-Passwortes Anmelden an der COON-Plattform...

Kapitel DB:VI (Fortsetzung)

Oracle SQL Tutorium - Wiederholung DB I -

FTP Tutorial. Das File Transfer Protocol dient dem Webmaster dazu eigene Dateien wie z.b. die geschriebene Webseite auf den Webserver zu laden.

Upgrade-Leitfaden. Apparo Fast Edit. Wechsel von Version 2 auf Version oder Wechsel von Version auf Version 3.0.

Um unsere Gemeindewebseite für Ihre Zwecke zu nutzen, haben Sie folgende Möglichkeiten:

Übung Datenbanksysteme I JDBC. Thorsten Papenbrock

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

Thomas Wagner 2009 (im Rahmen der TA) Installation von MySQL 5.0 und Tomcat 5.5

25 Import der Beispiele

Transkript:

Wie kommen die Befehle zum DBMS Dr. Karsten Tolle Datenbanken und Informationssysteme

Wie kommen die Befehle zum DBMS Bisher gesehen: SQL direkt zum DBMS Workbench Kommandozeile IBM Query Tool Weitere?

Datenbank Administrator Fortgeschrittener Benutzer Programmierer Einfacher Benutzer Programme Schema Modifikationen DDL DML DDL Compiler Query Prozessor Transaktions Manager Unser Fokus heute! DBMS Datenbank Manager Daten Metadaten

embedded SQL Embedded SQL (abgekürzt: ESQL) ist eine Spracherweiterung von SQL, mit der es möglich ist, SQL-Anweisungen innerhalb einer strukturierten oder objektorientierten Programmiersprache (der Hostsprache) auszuführen. Embedded SQL wurde erstmals im SQL92- Standard definiert.

Embedded SQL und C - Beispiel EXEC SQL BEGIN DECLARE SECTION; char diebar[21], dasbier[21]; float preis; EXEC SQL END DECLARE SECTION; /* holen der Werte für diebar und dasbier */ EXEC SQL SELECT price INTO :preis FROM Verkauft WHERE bar = :diebar AND bier = :dasbier; /* die Variable preis kann nun verwendet werden*/

DB LIB DB STD LIB Prüft gegen die DB Quelltext mit SQL-Befehlen Precompiler Quelltext in reiner host language Objektdatei Ausführbares Programm Compiler Linker

Precompiler pro/cons zusätzlicher Schritt beim Kompilieren (-) Wechsel der DB kann erneutes precompile/compile erzwingen (-) Validierung und Binding der SQL-Anfragen kann zur Kompilier-Zeit erfolgen (+) dazu muss die Datenbank existieren (-)

CLI Call Level Interface Das Call Level Interface (kurz CLI) ist eine Datenbankschnittstellen-Spezifikation für den Zugriff auf RDBMS (baut auf SQL auf) aus anderen Anwendungen heraus. Weitere Details unter: https://www2.opengroup.org/ogsys/jsp/publications/publicationdetails.jsp?catalogno=c451 PDF des Technical Standards von 1995! ~320 Seiten

Anwendung 1 Elementare Zugriffsoperationen Anwendung 2 Elementare Zugriffsoperationen Anwendung 3 Elementare Zugriffsoperationen Anwendung 1 Zugriffsoperation en in Progr.- Sprache enthalten Anwendung 2 Zugriffsoperation en in Progr.- Sprache enthalten Call Level Interface Anwendung 3 Zugriffsoperation en in Progr.- Sprache enthalten Datenbank- Managementsystem (DBMS) DBS Datenbank- Managementsystem (DBMS) DBS Datenbank (DB) Datenbank (DB)

Vorteile CLI zu ESQL Kein Precompiler nötig. Vorteil für Client/Server Architektur, da unabhägig(er) von Zieldatenbank Anwendung 1 Anwendung 2 Anwendung 3 Call Level Interface Oracle driver IBM DB2 driver Oracle IBM DB2 Datenbank (DB) Datenbank (DB)

Programmierschnittstellen, die das CLI- Konzept umsetzen, sind z.b.: Open Database Connectivity (ODBC), Java Database Connectivity (JDBC).

Java Database Connectivity JDBC 1.0 (Januar 1997) jdbc.sql.* als optionales Paket Basierend auf SQL92 JDBC 2.0 java.sql.* in JSE2 * (batch-updates, SQL3-Datentypen) javax.sql.* (optional - ab Java 1.3 fest) enthält Data- Source (JNDI - Java Naming and Directory Interface), Connection-Pooling, verteilte Transaktionen JDBC 2.0 Treiber sind für die fast alle (bekannteren) RDBMS vorhanden * Java 2 Standard Edition (JSE2) auch Java2

Java Database Connectivity JDBC 3.0 Teil von Java 1.4 - neu unter anderem: Savepoints in Transaktionen, Wiederverwendung von PreparedStatements, JDBC-Datentypen BOOLEAN und DATALINK, Abrufen automatisch generierter Keys, Änderungen von LOBs (Large Objects) und mehrere gleichzeitig geöffnete ResultSets JDBC 4.0 (Dezember 2006) Teil von Java 1.6 neu hier: Annotationen für SQL-Queries, Treiber werden wenn vorbereitet automatisch angemeldet, XMLDatentypen aus SQL:2003, Zugriff auf die SQL ROWID Details unter: http://www.oracle.com/technetwork/java/javase/jdbc/index.html

Java Praxis - DriverManager 1. JDBC Treiber für DBMS in Classpath aufnehmen, Beispiel: set JDBC_Driver="C:\MySQL\mysql-connector-java-3.1.6-bin.jar" java classpath %JDBC_Driver% MyAnwendung 2. Treiber im Program laden und aktivieren, Beispiel: try { Class.forName(jdbcdriver); } catch (Exception e) {} 3. Verbindung herstellen, Beispiel: try { Connection con = DriverManager.getConnection("jdbc:mysql:///db1", "user", "pw ); } catch (Exception e) {}

Java Praxis 4. SQL Statement (Objekt) erzeugen Statement stmt = con.createstatement(); 5. SQL Anfrage erzeugen und an DBS schicken: ResultSet rs = stmt.executequery( select * from mytable ); 6. Mit dem Ergebnis arbeiten: while (rs.next()) { String name = rs.getstring( Name ); System.out.println( Name = +name); }

Java Praxis DataSource Alternative für 1-3 // Get an initial JNDI context for locating the driver and // database Context ctext = new InitialContext(); // Get a DataSource object for the driver and database // associated with a logical name DataSource ds = (DataSource)ctext.lookup("jdbc/my_DB"); // Now, get the connection Connection conn = ds.getconnection(); Vorteil der Nutzung des javax.sql.datasource Interfaces ist, dass die Zugangsdaten für die Datenbank (URL, Benutzername, Passwort) nicht hart kodiert werden müssen, sondern in einer Konfigurationsdatei ausgelagert werden können. Dies erleichtert den Wechsel auf eine andere Datenbank- Instanz. Siehe auch: http://w3processing.com/index.php?submenuid=134

Code auf der DB-Server Seite Stored Funtions oder Stored Procedures SQL-Statements werden auf der Serverseite gehalten Schleifen, Bedingungen etc. vorhanden (aber Syntax oft abh. vom DBMS!) Wann insb. ist dies von Vorteil?

einfache Stored Procedure

// Beispielaufruf aus Java CallableStatement cstmt = con1.preparecall("{call personal()}"); boolean hadresults = cstmt.execute(); if (hadresults) { ResultSet rs = cstmt.getresultset();

komplexere Stored Procedure