Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Ähnliche Dokumente
In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen.

Willkommen. Datenbanken und Anbindung

In diesem Anschnitt geht es um die SQL Anweisungen, mit denen ich den Zugriff auf das Datenbankschema steuern kann.

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Java Database Connectivity (JDBC) Walther Rathenau Gewerbeschule 1

Es geht also um die sogenannte SQL- Data Definition Language.

Java Database Connectivity-API (JDBC)

Oracle & Java HOW TO

Java: MySQL-Anbindung mit JDBC.

Java Database Connectivity-API (JDBC)

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

Java Database Connectivity. Gracin Denis, IB 4 C

JDBC. Allgemeines ODBC. java.sql. Beispiele

PHP- Umgang mit Datenbanken (1)

Hauptschritte einer JDBC-App

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

Java und Datenbanksysteme Datenbankanbindung mit JDBC

Webbasierte Informationssysteme

Unified-E SQL Adapter

Datenbank und Informationssysteme

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Übung3. Test der Möglichkeiten des JDBC-Interfaces. Prof. Dr. Andreas Schmietendorf 1. Übung 3

Darüber hinaus bietet SQuirreL eine Vielzahl von Plug-ins, mit denen der Funktionsumfang des Programms erheblich erweitert werden kann.

Kapitel DB:VI (Fortsetzung)

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

Installationsanleitung für die netzbasierte Variante Ab Version 3.6. KnoWau, Allgemeine Bedienhinweise Seite 1

Datenbanken unter J++ - Teil 2

Das Leben der Anderen

JDBC. Java DataBase Connectivity

Hauptschritte einer JDBC-App

1a) SQL Stored Procedure via IDs

A Datenbanken. A.1 Firebird. A.1.1 Installation des Servers. A.1.2 Installation der Beispieldatenbanken. Datenbanken 1

Einführung: Verteilte Systeme - Remote Method Invocation -

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

Datenbankzugriff mit JDBC

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

Installation und Konfiguration

SMARTentry Notification

In diesem Abschnitt wollen wir uns mit dem Thema XML Datenbank beschäftigen. Das Ziel ist, herauszufinden, was XML Datenbank überhaupt sind und was

Klausur Datenbanken II

Oracle 10g Einführung

Eclipse und EclipseLink

Anleitung: Verbindung mit der Datenbank

OO Programmiersprache vs relationales Model. DBIS/Dr. Karsten Tolle

SQLcl Quo vadis SQL*Plus? Das neue SQL*Plus in der Praxis. Gunther Pippèrr GPI Consult München

SQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99

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

Getting Started Conquestor

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

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

vs. Fehler zur Übersetzungszeit

ODBC Was ist das? ODBC Treiber installieren ODBC-Zugriff einrichten ODBC Zugriff mit Excel ODBC Zugriff mit Word...

MySQL, Java und einiges mehr

SMARTentry Notification

PL/SQL Web-Services mit Oracle 11g

Datenaustausch Hadoop & Oracle DB Carsten Herbe metafinanz Informationssysteme GmbH München

datenlink-schnittstelle Version 1.0

ERSTELLUNG EINES DATENEXPORTS MIT ORGAMAX

Wie kommen die Befehle zum DBMS

Datenbanken. Produkte Dienstleistungen Referenzen

Die Datenbank und der Strukturentwurf wurden vorher mit phpmyadmin erzeugt.

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

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

P'X5 Sales Solution. Betriebshandbuch Version 10.0

Kapitel DB:VI (Fortsetzung)

In diesem Abschnitt stehen Transaktionen im Mittelpunkt. Hierbei geht es darum, wie bei Mehrbenutzerbetrieb die Integrität von Datenbanken

SchildNRW mit Anbindung an eine MySQL-Datenbank Stand Februar 2017 (Martin Roß)

RELATIONONALE DATENBANKEN MIT JDBC

Das Wüstenrot-Unterschrifts-Pad

11 Anwendungsprogrammierung

Unternehmensdokumente mit dem XML Publisher erzeugen

CARM und CARM-NG Server Automatisierung mit Agenten; Schnittstellen zu anderen Datenbanken; Web-Enabled

Vorlesung Informatik II

2.3 - Das Verwaltungsmodul moveon installieren - SQL-Version

Bedienungsanleitung der Datenbankschnittstelle

Verlagerung von Java- Anwendungen in die Datenbank (Teil II)

Javaprogrammierung unter Notes

DWx2r XSD/XML-Processing. Testversion

Installation und Konfiguration

2 Anlegen und Konfigurieren von Datenbanken 35

Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java. Oliver Kalz

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

Inhalt. Nero - Verbindung zu Remote Adressen Seite 1 von 10

Kapitel 14. Objekt-relationales Mapping (ORM) mit Hibernate bzw. Java Persistance API (JPA) Prof. Dr. Wolfgang Weber Vorlesung Datenbanken

ComfortsAutomatic-Datamodel

Melderportal: Anleitung für die Paketmeldung mittels Upload-Client

Übung: Verwendung von Java-Threads

Datenbank Anbindung. Arthur Zaczek


Sie möchten als Hochschulangehöriger das Internet sowie spezielle Angebote der Fachhochschule Köln nutzen?

Anleitung zur Integration der /data.mill API in SAP Java Applikationen

Installation von ib-normcad 11 unter rz-industriebau 2012

Play Framework, MySQL, JPA, HQL, HTML, jquery,

Hello World! Eine Einführung in das Programmieren Das erste Programm

Das Grundlagenbuch zu FileMaker Pro 7- Datenbanken erfolgreich anlegen und verwalten

Transkript:

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen 16OH21005 gefördert. Die Verantwortung für den Inhalt dieser Veröffentlichung liegt beim Autor/bei der Autorin.

In diesem Abschnitten wollen wir uns mit den wichtigsten Schnittstellen beschäftigen, die bei der Entwicklung einer Datenbank-Software in der Praxis eine Rolle spielen. 1

In diesem Abschnitt wollen wir uns mit den möglichen Schnittstellen beschäftigen, über die man auf Datenbanken zugreifen kann. Ziel ist es einen Überblick zu erhalten und die wichtigsten Merkmale kennen zu lernen. Die wichtigsten Schnittstellen sind in der Abbildung aufgelistet. Diese werden wir uns als nächstes näher ansehen. 2

In dieser Abbildung sehen Sie eine grobe Einteilung und Klassifizierung der einzelnen Schnittstellen. Zum einen sehen Sie die Einteilung in Standard- oder Hersteller-Spezifische- Schnittstellen. Zum anderen sehen Sie die Einteilung nach Art der Verwendung. Also, ob die Schnittstelle für eine bestimmte Programmiersprache bereitgestellt wird, in der eine Anwendung implementiert werden kann, oder ob es eine Schnittstelle ist, bei der direkt SQL Befehle ausgeführt werden können. 3

Was genau unter den einzelnen Schnittstellen zu verstehen ist, werden wir uns nun näher ansehen.

Beginnen wir mit den wichtigsten Schnittstellen. Auf dieser Abbildung sind die Schnittstellen zu sehen, die in der Praxis am meisten eingesetzt werden. Hierzu gehören: JDBC.. Für JAVA Programme ODBC.. Für C Programme SQL Interpreter.. Um SQL Befehl direkt ausführen zu können 4

Beginnen wir mit dem SQL Interpreter. Ein SQL-Interpreter ist zunächst einmal ein Software-Programm. Es bietet einem Anwender eine Schnittstelle, die es erlaubt, dass SQL Anweisungen eingegeben und ausgeführt werden können. Zum Beispiel stellt SQL Server ein Programm sqlcmd.exe zur Verfügung. Diese Programm kann z.b. in einer Command-Box gestartet werden, um Entweder ein SQL Command einzugeben 5

und ausführen zu lassen Oder man kann eine Datei angeben, welche SQL Anweisungen (SQL-Batch-Script) enthält. Diese SQL Anweisungen werden dann ausgeführt. Im Fehlerfall, wird die Ausführung des Script abgebrochen. Typische Anwendungsfälle für das Ausführen dieser SQL-Batch-Scripts sind Scripts für Wartungszwecken Scripts zum Testen von Datenbanken bzgl. Schema und/oder Inhalt Scripts für Performance Tests Scripts zur Installation / De-Installation von Datenbank-Schemas Scripts zum Update von Datenbank Schemas

In dieser Abbildung sehen Sie als Beispiel die Optionen die beim Aufruf des SQL Server Interpreters sqlcmd.exe angegeben werden können. Die wichtigsten Optionen sind durch die Pfeile markiert. Im einzelnen sind dies: -U für die Authentifizierung des Datenbank Users -i Eingabedatei -o Ausgabedatei Wird keine Eingabedatei angegeben, so erhält man einen Command-Prompt und 6

kann dann SQL Anweisungen eingeben.

Als eine besondere Art von SQL Interpreter wird auch durch die H2 Datenbank zur Verfügung gestellt. Hierbei handelt es sich nicht um eine Kommando-Box, sondern um eine Web- Browser basierte Schnittstelle. Wie Sie in der Abbildung sehen, erhält der Anwender eine Möglichkeit über einen Web-Browser eine SQL-Anweisung aus zu führen und das Ergebnis wird ebenfalls im Browser angezeigt. 7

Hier sehen Sie nochmals aufgelistet, die typischen Einsatzgebiete für SQL Interpreter. Das wohl wichtigste Einsatzgebiet ist das Ausführen von SQL Ad Hoc Abfragen zu Test- und Wartungszwecken. 8

Als nächstes wollen wir uns näher mit der JDBC Schnittstelle beschäftigen. Wie bereits erwähnt, handelt es sich um eine Schnittstelle, die es erlaubt aus JAVA Programmen heraus, auf Datenbanken zuzugreifen. Hierzu ist es notwendig, einen entsprechenden JDBC Driver in das JAVA Projekt ( Build-Path und CLASSPATH) mit aufzunehmen, um die notwenige JAVA Klassen für die Ansteuerung der Datenbank verwenden zu können. 9

Wie Sie in der Abbildung sehen, handelt es sich bei einem JDBC Driver um ein Java Archive File ( JAR). Obwohl die Schnittstelle selbst standardisiert ist, ist die Erzeugung der Objekte bei den einzelnen Herstellen unterschiedlich. Daher ist es notwendig, sich den JDBC Driver von der jeweiligen Web-Seite des Datenbankhersteller herunterzuladen und einzubinden.

In dieser Abbildung sehen Sie die wichtigsten Informationen für die Verwendung des H2Database JDBC Drivers. Das JAR File muss in den Build-Path bzw. in den Class-Path eingebunden werden. Den Namen des JDBC-Drivers URL für den Verbindungsaufbau zu einer H2 Datenbank 10

In dieser Abbildung sehen Sie die wichtigsten Informationen für die Verwendung des SQL Server JDBC Drivers Wie Sie sehen ist der größte Unterschied bei der Syntax der URL für den Verbindungsaufbau. 11

Abschließend sehen wir uns noch ein Beispielprogramm für den Zugriff auf eine SQL Server Datenbank. Den Quellcode wurde einer offiziellen Quelle der Firma Microsoft entnommen. Den entsprechenden Link finden Sie am Ende aufgelistet. Zu (1) Zunächst müssen wir das Java Standard Package für SQL importieren. Dies enthält die Schnittstellen-Definitionen für den SQL Zugriff. 12

Zu (2) Nun müssen wir einen sogenannten Connection- String erstellen. Dieser Java-String enthält eine URL, die angibt Auf welche SQL Server Datenbank wir zugreifen wollen in diesem Fall localhost und die Standard Portnummer Auf welche Datenbank wir zugriefen wollen in diesem Fall ist der Name der Datenbank AdventureWorks Und mit welchen Datenbank Benutzer/ Passwort wir zugreifen wollen in diesem Fall UserName Zu (3) Um eine Verbindung aufbauen zu können, müssen wir eine Instanz des SQL Server Driver erstellen. Anschließend können wir über die Klassen DriverManager eine Verbindung zur Datenbank aufbauen. Hierzu übergeben wir den entsprechenden Connection String ( URL ) aus Teil (2). Nun haben wir ein Verbindungsobjekt con. Was wir damit tun können, sehen wir uns als nächstes an. Quelle.

SQL Server https://msdn.microsoft.com/dede/library/aa342339(v=sql.110).aspx

Zu (3) Nachdem wir eine Datenbank-Connection erstellt haben, können wir SQL Anweisungen ausführen. Zu(4) Im einfachsten Fall wollen wie eine SELECT Anweisung ausführen. Hierzu sehen wir in Schritt (4), das wir diese Anweisung einfach als JAVA String ablegen können. Zu(5) 13

In lassen wir für ein Statement Object erzeugen und verwenden hierzu das Connection Object, auf der wir auch die Anweisung ausführen lassen wollen Zu(6) Im die Anweisung aus zu führen, verwenden wir unser Statement-Object und übergeben in der Methode executequery() den entsprechende Java String, welche die SQL Anweisung ( in unserem Fall das SELECT Statement enthält. Als Return-Wert der Methode executequery() erhalten wir ein Objekt der Klasse ResultSet, welches die Ergebnismenge beinhaltet. Zu(7) Das Auswerten der Ergebnismenge erfolgt dadurch, dass wir durch die einzelnen Elemente der Ergebnismenge iterieren: Dies erfolgt mittels der Methode next() Bei der Methode rs.getstring() kann wie in dem Beispiel ein Index der Spalten-Nummer ( Start mit 0) = 1. Spalte) oder auch der Name der Spalte angegeben werden.

Hinweise: Sieh auch : JDBC Api Spezifikation http://docs.oracle.com/javase/7/docs/technotes/guides/ jdbc/

Zum Abschluss des Thema JDBC hier noch eine kleine Tabelle. Wie wir ja wissen, werden datenbank-intern eigene Datentypen wie VARCHAR etc. verwendet. Somit stellt sich die Frage: Wie werden die datenbank-internen Datentypen auf die Datentypen der jeweiligen Sprache ( hier JAVA) abgebildet. Für JAVA und JDBC ist diese Abbildung in 14

der Tabelle aufgeführt. Quelle: http://www.servicearchitecture.com/articles/database/mapping_sq l_and_java_data_types.html Die Tabelle selbst ist aber nicht vollständig und zeigt nur die am meisten verwendeten Datentypen. Eine vollständige Beschreibung der Abbildung der Datentypen ist bei dem jeweiligen DB Hersteller zu finden. Siehe auch: Oracle https://docs.oracle.com/cd/b19306_01/java.102/b14 188/datamap.htm SQL SERVER https://msdn.microsoft.com/dede/library/ms378878(v=sql.110).aspx H2 http://www.h2database.com/html/datatypes.html

Nachdem wir uns etwas ausführlicher mit dem Thema JAVA und JDBC beschäftig haben, wenden wir uns der ODBC Schnittstelle zu. Wie Sie in der Abbildung sehen, ist diese dem JDBC Ansatz sehr ähnlich. In diesem Fall handelt es sich bei ODBC um eine binäre Schnittstelle. Dies bedeutet: ODBC ist eine Bibliothek im binär Format. Maschinen Code Sie ist somit Plattform spezifisch. Dies 15

bedeutet, dass wir für Windows und Linux jeweils unterschiedliche Bibliotheken benötigen. Dies gilt entsprechend auch für ein 32 Bit oder 64 Bit Rechner Architektur. Siehe auch ODBC Reference Microsoft https://msdn.microsoft.com/enus/library/ms714177(v=vs.85).aspx

Um die Wichtigkeit von ODBC zu verstehen, schauen wir uns kurz die Herkunft von ODBC an. Treibende Kraft hinter ODBC war Microsoft. Dort hat man die Notwenigkeit gesehen, eine Standardschnittstelle für C- Programme zu entwickeln, um auf Datenbestände zugreifen zu können. Diese Schnittstellt hat sich schnell zu einem De-Facto Standard entwickelt, zumal X/OPEN und ISO/IEC mitgearbeitet haben und andere Hersteller auch diesen Standard implementiert haben. 16

Für den praktischen Einsatz bedeutet dies, dass man sich die jeweiligen ODBC Driver für die entsprechende Plattform von der Hersteller Web-Seite herunter laden muss. Dort findet man auch entsprechende Beispiel- Programme. Hinweis: Code Sample und API Reference ist zu finden unter https://msdn.microsoft.com/enus/library/ms714177(v=vs.85).aspx PS: Wir ersparen uns hier ein Beispiel C-Programm, da ohne Kenntnisse der Programmiersprache C ein Code-Beispiel keinen Sinn ergibt. Zumal Kenntnisse der Programmiersprache C für diesen Grundlagenkurs nicht zwingend notwendig sind.

Wenden wir uns nun einer weiteren Möglichkeit zu, um von Programmen aus, auf eine Datenbank zugrie Auf dieser Abbildung sehen Sie, wie man SQL-Anweisungen direkt in seinen Quelle-Code einer Applik Dies bedeutet, dass zum Beispiel, dass in einer Quell-Datei zwei Programmiersprachen zu finden sind. Neben dem Quellcode z.b. in der Programmiersprache C können in den Code SQL Anweisungen eingetr Die SQL Anweisungen beginnen dabei immer mit den Schlüsselworten SQL EXEC. Beispiel: SQL EXEC select * from foo where id = 123 Ein entsprechendes Beispiel-Programm finden sie unter: https://docs.oracle.com/cd/b10501_01/appdev. Um solche Programme ablaufen lassen zu können, werden diese Quelldateien durch einen sogenannten

Unter Windows bietet die Firma Microsoft ein sogenannte ADO Schnittstelle an. Die Abkürzung ADO steht dabei für Advanced Data Object. Aus der Historie heraus findet man auch seh Die ADO Schnittstelle wird dabei für verschiedene Programmiersprachen wie: VisualBasic C ++ C# angeboten. ADO.Net bietet dabei eine Schnittstelle an, die sowohl den Zugriff auf relationale als auch nicht relationa Eine System Bibliothek mit dem Namen System.Data.dll enthält dabei die ADO.NET Klassen, die für Zum Beispiel bietet die Bibliothek System.Data.SqlClient eine Möglichkeit auf SQL Server zugriefen Ein entsprechendes Beispielprogramm in C# finden Sie unter: https://msdn.microsoft.com/de-de/library/d Siehe Auch: Microsoft ADO.NET: https://msdn.microsoft.com/en-us/library/h43ks021(v=vs.110).aspx

In dieser Abbildung sehen Sie eine weiteren Ansatz, bei dem herstellerspezifische APIs zum Einsatz kom In diesem Fall liefert der jeweilige Hersteller des DBMS sowohl eine API-Beschreibung als auch eine B Diese Art der Schnittstellen sind optimal auf das DBMS abgestimmt und erlauben eine sehr effizienten Z Siehe auch: Oracle Call Level Interface : http://www.oracle.com/technetwork/database/features/oci/index-090945 Microsoft SQL Server Native Client: https://msdn.microsoft.com/en-us/library/cc280510.aspx

In dieser Abbildung sehen Sie die Namen der herstellerspezifischen API von einigen Herstellern. Oracle stellt eine sogenannte OCI Schnittstelle bereit. Wobei das Akronym OCI für Oracle Call Level I Für Postgres steht eine Bibliothek mit dem Namen libpq zur Verfügung. Für den Zugriff auf Microsoft SQL Server wird hierzu die Schnittstelle OLE DB Provider angeboten. In der Regel werden die jeweiligen Bibliotheken bei der Installation eines DBMS mit installiert. Alterna Im Falle von Microsoft SQL Server suchen Sie nach SQL Server Native Client Siehe auch: Microsoft: https://msdn.microsoft.com/de-de/library/ms130978(v=sql.120).aspx