Übersicht. Relationale Datenbanken SQL - Structured Query Language JDBC - Java Datenbank Schnittstelle Beispielanwendung. R. Kopetzky 7.

Ähnliche Dokumente
Webbasierte Informationssysteme

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

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

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

Java Database Connectivity (JDBC) Walther Rathenau Gewerbeschule 1

Java Database Connectivity-API (JDBC)

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort... 13

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort 13

Java Database Connectivity-API (JDBC)

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel

Webbasierte Informationssysteme

Client/Server-Programmierung

Inhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15

Inhaltsverzeichnis. Vorwort 13. Kapitel 1 Einleitung 15

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 11. Dez M. Endres, A. Huhn, T. Preisinger Lösungsblatt 7

Grundlagen von SQL. Informatik 2, FS18. Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich

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

Oracle 10g Einführung

Microsoft Access 2010 SQL nutzen

Einführung in JDBC. IFIS Universität zu Lübeck

JDBC. Allgemeines ODBC. java.sql. Beispiele

SQL structured query language

Klausur Datenbanken II

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

Inhaltsverzeichnis. Inhalt. Inhaltsverzeichnis...3 Vorwort...4 Grundlagen...5. Die Datenbanksprache SQL in verschiedenen Systemen...

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

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski.

Willkommen. Datenbanken und Anbindung

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software

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

Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell. Jetzt: -> Formulierung in DDL

Datenbankentwicklung

Bibliografische Informationen digitalisiert durch

Datenbank und Tabelle mit SQL erstellen

Datenbanken. Seminararbeit. Einführung in das wissenschaftliche Arbeiten

Die Anweisung create table

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

3 Query Language (QL) Einfachste Abfrage Ordnen Gruppieren... 7

Programmieren II. Relationale Datenbanken. Vorlesung 07. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011.

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

Inhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung

MS SQL Server Einstieg in relationale Datenbanken und SQL Marco Skulschus Marcus Wiederstein

Kapitel DB:VI (Fortsetzung)

Datenbanken. Zusammenfassung. Datenbanksysteme

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

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

Garten - Daten Bank. - survival pack -

Marcus Throll, Oliver Bartosch. Einstieg in SQL. Verstehen, einsetzen, nachschlagen. Galileo Press

DB1. DB SQL-DQL 1 Mario Neugebauer

Java Database Connectivity-API (JDBC)

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

Seminar 2. SQL - DML(Data Manipulation Language) und. DDL(Data Definition Language) Befehle.

4. Datenbanksprache SQL

PHP- Umgang mit Datenbanken (1)

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

JDBC. Java DataBase Connectivity

SQL Data Manipulation Language (DML) und Query Language (QL)

Wiederholung VU Datenmodellierung

Oracle & Java HOW TO

ACCESS SQL ACCESS SQL

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

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

Wirtschaftsinformatik 7a: Datenbanken. Hochschule für Wirtschaft und Recht SS 16 Dozent: R. Witte

Java Database Connectivity API / JDBC

Inhaltsverzeichnis. jetzt lerne ich

Datenbanken Entity-Relationship-Modell und Datenbankentwurf 1. Andreas Heß Hochschule Furtwangen

Datenbanksysteme 2013

Daniel Warner SQL. Das Praxisbuch. Mit 119 Abbildungen. Franzis

Inhaltsverzeichnis. Lothar Piepmeyer. Grundkurs Datenbanksysteme. Von den Konzepten bis zur Anwendungsentwicklung ISBN:

Übung 01 Tabellen erstellen

Inhaltsverzeichnis. Inhalt. 1 Einführung in die Datenbanktechnologie

2 Anlegen und Konfigurieren von Datenbanken 35

Visualisierung in Informatik und Naturwissenschaften

Datenbanken. Ein DBS besteht aus zwei Teilen:

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.

Inhaltsverzeichnis. Einleitung

S(tructured)Q(uery)L(anguage)

vs. Fehler zur Übersetzungszeit

Relationales Datenbanksystem Oracle

Rolf Däßler. Das Einsteigersem. MySQL 5

PHP + MySQL. Die MySQL-Datenbank. Hochschule Karlsruhe Technik & Wirtschaft Internet-Technologien T3B250 SS2014 Prof. Dipl.-Ing.

Datenmanagement in Android-Apps. 16. Mai 2013

SQL - Datenbankdesign - Aufbau

Übersicht der wichtigsten MySQL-Befehle

Java Database Connectivity. Gracin Denis, IB 4 C

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2

Oracle: Abstrakte Datentypen:

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language)

Erstellen einer Datenbank. Datenbankabfragen

Datenmodelle und Datenbanken 2

Datenbanken (Übung 12)

MySQL, phpmyadmin & SQL. Kurzübersicht

Es geht also im die SQL Data Manipulation Language.

DB2 SQL, der Systemkatalog & Aktive Datenbanken

A Generic Database Web Service for the Venice Lightweight Service Grid

Abfragen (Queries, Subqueries)

Ziel: wie kann man in Java auf Datenbanken zugreifen und Daten manipulieren? dazu brauchen wir:

Tipps & Tricks: Umkodieren von ICD-9-Daten Daten zu ICD-10 in SAS mittels PROC SQL

Transkript:

Informatik Verbund Stuttgart der Universität Stuttgart Tutorium Java Anbindung von Datenbanken mit JDBC (kopetzky@ike.uni-stuttgart.de)

Übersicht Relationale Datenbanken SQL - Structured Query Language JDBC - Java Datenbank Schnittstelle Beispielanwendung

Warum Datenbanken?... kaum eine größere Informatikanwendung ist ohne DB-Unterstützung denkbar. DB-Systeme... sind heute ein selbstverständliches Hilfsmittel der betrieblichen Organisation und Verwaltung geworden. Datenbanken... als Schlüsseltechnologie für die effiziente Realisierung komplexer Informationssysteme...

Kennzeichen der Daten lange Lebensdauer (Jahre, Jahrzehnte) reguläre Strukturen große Datenobjekte, große Datenmengen stetig anwachsende integrierte Bestände (Giga-, Terabyte an Informationen) immer wiederkehrende Muster von Objektbeziehungen

Vorteile einer Datenbank Datenhaltung und Zugriff auf die Daten unabhängig von der Anwendung Datensharing: Gleichzeitiger Zugriff mehrerer Benutzer bzw. Anwendungen unter Wahrung der Datenkonsistenz Software-Qualität: Definierte Schnittstellen, Modularisierung von Anwendercode und Datenzugriffscode Beliebige Verteilung von Programmen und Datenhaltung Skalierbarkeit der Datenbankleistungsfähigkeit Gewährleistung der Datensicherheit

Bestandteile einer Datenbank Datenbankverwaltungssystem Datenbanksprache Formulareditor Berichtseditor Menüeditor

Relationales Datenbankmodell exakte Beschreibung des Datenbankschemas Ablage von Daten in Form von Tabellen Beziehungen zwischen Tabellen Ziele: Redundanz (mehrfaches Speichern gleicher Informationen) verhindern Datenkonsistenz (Eindeutigkeit der Daten) gewährleisten

Tabellen Tabellenname Teilnehmer TNummer Vorname Name Mail 1002 Kai Müller kai@mueller.de 1003 Emil Wutz emil@gmx.de 1011 Gerda Pfau pfau@t-online.de 1022 Karl Marx karl@marx.de 1023 Friedrich Marx friedrich@marx.de 1033 Susanne Marx susanne@marx.de Feldname Datensatz Wertebereich 1045 Erwin Ecke ecke@t-online.de Feldinhalt

Assoziationstypen Assoziationstyp einfache Assoziation konditionelle Assoziation multiple Assoziation multiple-konditionelle Assoziation Abkürzung 1 c m mc Datensatzanzahl in Tabelle 2 genau ein Datensatz (1) kein oder genau ein Datensatz (0/1) mindestens ein Datensatz (>=1) beliebig viele Datensätze (>=0)

Kombination der Assoziationstypen Beziehung = Assoziation + Gegenassoziation Vier Assoziationstypen => max. 16 Beziehungstypen 1 c m mc 1 1-1 c-1 m-1 mc-1 hierarchische Beziehungen c 1-c c-c m-c mc-c konditionelle Beziehungen m 1-m c-m m-m mc-m netzwerkförmige Beziehungen mc 1-mc c-mc m-mc mc-mc

Primär- und Fremdschlüssel Ein Primärschlüssel (primary key)...... muß eindeutig sein... muß in jedem Datensatz vorhanden sein Ein Fremdschlüssel (foreign key)...... muß als Primärschlüssel in Tabelle 2 existieren... darf nicht leer sein... kann unterschiedliche Feldnamen haben

Beispiel konditionelle Assoziation 1 - c Teilnehmer TNummer Vorname Name 1002 Kai Müller 1003 Emil Wutz Bankverbindung TNummer BLZ KtoNr 1002 60050101 1815 1011 70010001 7878 1011 Gerda Pfau allgemeine Teilnehmerdaten spezielleteilnehmerdaten

Beispiel multiple Assoziation mc - mc Teilnehmer TNummer Vorname Name 1002 Kai Müller 1003 Emil Wutz Kurs KNummer Titel Gebühr 122 JDBC 50 213 JavaBeans 150 1 - mc 1 - mc Teilnehmer_Kurs TNummer KNummer 1002 122 1003 122 1002 213

Kochrezept Datenbank Bestimme den Zweck Lege die Tabellen fest Definiere Primär- und Fremdschlüssel Vereinbare die Beziehungen Erstelle die Tabellen Erzeuge Beispieldatensätze und teste

SQL - Structured Query Language Standardsprache für relationale Datenbanken (ANSI) Ermöglicht Kommunizieren mit dem Datenbanksystem Ermöglicht Abfragen, Manipulieren und Sichern von Daten Viele Hersteller haben Sprachumfang individuell erweitert (... natürlich... )

SQL Anweisungen (Datendefinition) Anweisung für Tabellen erstellen Tabellen ändern Tabellen indizieren Anweisung CREATE TABLE ALTER TABLE CREATE UNIQUE INDEX CREATE TABLE Teilnehmer ( TNummer LONG, Vorname CHAR(30), Name CHAR(30) NOT NULL, Mail CHAR(50), CONSTRAINT Const1 PRIMARY KEY (TNumber) );

SQL Anweisungen (Datenmanipulation) Anweisung für Datensätze einfügen Datensätze ändern Datensätze löschen Anweisung INSERT INTO UPDATE DELETE FROM INSERT INTO Teilnehmer (TNummer, Vorname, Name, Mail) VALUES(1002, Kai, Müller, kai@mueller.de ); INSERT INTO Teilnehmer (TNummer, Name) VALUES(1003, Wutz );

SQL Anweisungen (Datenabfrage-1) Anweisung für Einfache Abfragen Abfrage mit Bedingungen Datensätze sortieren Datensätze gruppieren verknüpfte Abfragen Tabellen vereinigen Unterabfragen Speichern der Abfragen Anweisung SELECT...... WHERE...... ORDER BY...... GROUP BY... HAVING...... UNION... DELETE FROM

SQL Anweisungen (Datenabfrage-2) SELECT * FROM Teilnehmer; TNummer Vorname Name Mail 1002 Kai Müller kai@mueller.de 1003 Emil Wutz emil@gmx.de 1011 Gerda Pfau pfau@t-online.de 1022 Karl Marx karl@marx.de 1023 Friedrich Marx friedrich@marx.de 1033 Susanne Marx susanne@marx.de 1045 Erwin Ecke ecke@t-online.de SELECT * FROM Teilnehmer WHERE Name= Marx ; TNummer Vorname Name Mail 1022 Karl Marx karl@marx.de 1023 Friedrich Marx friedrich@marx.de 1033 Susanne Marx susanne@marx.de

Datenbank Transaktionen Grundkonzept der Transaktionsverarbeitung: Atomare Aktionen Atomicity Transaktion wird wie eine Anweisung behandelt Consistency Datenbank ist vor und nach Transaktion konsistent Isolation Durability Zeitlich verzahnte Transaktionen werden isoliert ausgeführt Änderungen sind nach erfolgreicher Transaktion dauerhaft

2-Phasen-Commit Protokoll aktion 1 prepare Programm aktion 1 ready aktion 2 prepare Phase I aktion 2 ready Phase II commit acknowledge Datenbank

Was ist JDBC? Java API für die Ausführung von SQL Anweisungen Warenzeichen Java Database Connectivity Sammlung von Java Klassen und Schnittstellen Java Mechanismus zur Kommunikation mit unterschiedlichen Datenbanken

Was macht JDBC? Verbindungsaufbau mit Datenbank Senden von SQL Anweisungen ggf. Auswertung der Ergebnisse connect Java Programm/ Applet JDBC SELECT * FROM... ResultSet Datenbank

Wozu JDBC (und nicht ODBC)? Probleme bei Nutzung der C-Schnittstelle: Portabilität Robustheit (void*) lokale Installation nötig ODBC ist schwer zu lernen reine Java-Lösung ist automatisch installierbar portabel sicher

2-Schicht Modell (two-tier) Clientschicht (Benutzer- und Geschäftsdienste) Datenquellenschicht (Datendienste) Java Programm / Applet JDBC Datenbank

3-Schicht Modell (three-tire) Clientschicht (Benutzerdienste) mittlere Schicht (Geschäftsdienste) Datenquellenschicht (Datendienste) Java Programm / Applet Java Programm JDBC Datenbank

JDBC Architektur (1) partieller Java JDBC Treiber DB Client Bibl. Datenbank Server Java Applet/ Programm JDBC API JDBC Treiber Manager JDBC- ODBC Treiber ODBC DB Client Bibl. Datenbank Server

JDBC Architektur (2) reiner Java JDBC Treiber Datenbank Server Java Applet/ Programm JDBC API JDBC Treiber Manager reiner Java JDBC Treiber DB Middleware Datenbank Server

JDBC-ODBC Treiber JDBC Treiber einfach aber langsam zusätzliche lokale Software partieller Java JDBC Treiber zusätzliche lokale Software reiner Java JDBC Treiber DBMS abhängiges Protokoll reiner Java JDBC-Netz Treiber flexibel durch DBMS unabhängiges Protokoll für Internet-Nutzung: Sicherheit, Firewalls,...

JDBC Praxis Beispiel: Teilnehmerdatenbank mit Access Aufbau Teilnehmerdatenbank Einrichten der Datenquelle Rahmen einer Verbindung (Example 1) Einrichten der Tabellen (Example 2) Eintragen von Daten (Example 3) Auswerten von Ergebnissen (Example 4,5,6)

Aufbau Teilnehmerdatenbank mc - mc 1 - c 1 - mc mc - 1

Einrichten der Datenquelle Installation ODBC- Treiber Einrichten der ODBC- Datenquelle mydb

Vorbereitung: Rahmen einer Verbindung Laden des Datenbank Treibers: Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Aufbau der Verbindung: Connection con = DriverManager.getConnection("jdbc:odbc:myDB"); Transaktionsparameter setzen: con.setautocommit(false); Nachbereitung ( Aufräumen ): Abbau der Verbindung: con.close();

Einrichten der Tabellen Vorbereitung Anlegen eines Statement -Objekts: Statement stmt = con.createstatement(); Aktionen ausführen: stmt.executeupdate( CREATE TABLE Teilnehmer.. ); stmt.executeupdate( CREATE TABLE Bankverbindung.. ); stmt.executeupdate( CREATE TABLE Kurs.. ); stmt.executeupdate( CREATE TABLE Teilnehmer_Kurs.. ); Transaktionsausführung bestätigen: con.commit(); Nachbereitung ( Aufräumen )

Eintragen von Daten Vorbereitung Anlegen eines Statement -Objekts: Statement stmt = con.createstatement(); Kurse eintragen: stmt.executeupdate( INSERT INTO Kurs.. ); Teilnehmer eintragen: stmt.executeupdate( INSERT INTO Teilnehmer.. ); stmt.executeupdate( INSERT INTO Bankverbindung.. ); Teilnehmer anmelden: stmt.executeupdate( INSERT INTO Teilnehmer_Kurs.. ); Nachbereitung ( Aufräumen )

Auswerten von Ergebnissen Vorbereitung Anlegen eines Statement -Objekts: Statement stmt = con.createstatement(); Liste aller Teilnehmer: ResultSet rs = stmt.executequery( SELECT.. ); Ausgabe der Ergebnisse: while (rs.next()) { System.out.println(rs.getString( Name )); } Nachbereitung ( Aufräumen )

DriverManager: Übersicht JDBC-Klassen Laden von Treibern Erzeugen von Datenbankverbindungen Weiterreichen von Verbindungsanforderungen DriverPropertyInfo: Informationen über den verwendeten Treiber Types: Liste von SQL-Datentypen und symbolischen Konstanten Date, Time, Timestamp: SQL-nahe Erweiterungen der Klasse java.util.date Numeric: SQL-naher numerischer Typ mit erweiterten arithmetishen Operationen

Übersicht JDBC-Schnittstellen Driver Connection Statement PreparedStatement, CallableStatement: Effizientere Ausführung vorkompilierter Statements bzw. Prozeduren ResultSet: Ergebnisse einer Datenbankabfrage ResultSetMetaData: Informationen über die Attribute eines ResultSets DataBaseMetaData: Informationen über die aktuelle Verbindung

Literatur Start mit Datenbanken und SQL, KnowWare Verlag ISBN 3-931666-19-4 Einführung in SQL, Universität Dortmund http://www.hrz.uni-dortmund.de/kurse/ JDBC 2.0 Standard Extension API, sun microsystems http://java.sun.com/products/jdbc/