Java und Datenbanken Ein Überblick

Ähnliche Dokumente
DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

Oracle: Abstrakte Datentypen:

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

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

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Java Database Connectivity (JDBC) Walther Rathenau Gewerbeschule 1

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

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

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

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

IV. Datenbankmanagement

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

JDBC. Allgemeines ODBC. java.sql. Beispiele

Referenzielle Integrität SQL

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

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

Datenbanken & Informationssysteme Übungen Teil 1

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

SQL structured query language

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler

Labor 3 - Datenbank mit MySQL

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

Informatik 12 Datenbanken SQL-Einführung

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

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

2. Datenbank-Programmierung

Prozedurale Datenbank- Anwendungsprogrammierung

Grundlagen der Informatik 2

7. Übung - Datenbanken

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

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler

Datenmanagement in Android-Apps. 16. Mai 2013

Relationales Modell: SQL-DDL. SQL als Definitionssprache. 7. Datenbankdefinitionssprachen. Anforderungen an eine relationale DDL

Datenbanken. Ein DBS besteht aus zwei Teilen:

Java: MySQL-Anbindung mit JDBC.

3. Stored Procedures und PL/SQL

Webbasierte Informationssysteme

Projektbericht Gruppe 12. Datenbanksysteme WS 05/ 06. Gruppe 12. Martin Tintel Tatjana Triebl. Seite 1 von 11

MySQL Installation. AnPr

Verteidigung gegen SQL Injection Attacks

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

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

Allgemeines zu Datenbanken

SQL und MySQL. Kristian Köhntopp

2. Einrichtung der ODBC-Schnittstelle aus orgamax (für 32-bit-Anwendungen)

Datenbanksysteme I. Klausur zum Praktikum. Mehrere Professoren prüfen mit genau einem Beisitzer genau einen Studenten.

Datenbanken für Online Untersuchungen

Modul Datenbanksysteme 2 Prüfung skizzenhaft SS Aug Name: Note:

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

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

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

SQL-Injection. Seite 1 / 16

Java und Datenbanksysteme Datenbankanbindung mit JDBC

Klausur Interoperabilität

Praktikum Datenbanksysteme

PHP und MySQL. Integration von MySQL in PHP. Zellescher Weg 12 Willers-Bau A109 Tel Michael Kluge (michael.kluge@tu-dresden.

6.9 Java Server Pages

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

Oracle Forms. Aufbau und Bestandteile von Formularen. Erstellen eines neuen Blocks. Starten von Oracle Forms

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

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Grundlagen von Python

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language:

Das SQL-Schlüsselwort ALL entspricht dem Allquantor der Prädikatenlogik

PostgreSQL unter Debian Linux

Datumsangaben, enthält mindestens Jahr, Monat, Tag

Anleitung zur Einrichtung einer ODBC Verbindung zu den Übungsdatenbanken

8 Access-Abfragen migrieren

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und combit GmbH Untere Laube Konstanz

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Arbeiten mit einem lokalen PostgreSQL-Server

Übungen zur Softwaretechnik

TimeSafe Leistungserfassung

Aufgaben zu XPath und XQuery

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007

UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme

Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr. Praktikum Datenbanken / DB2 Woche 8: Trigger, SQL-PL

Relationale Datenbanken in der Praxis

Beispiel 1: Filmdatenbank

Übung 7 DBMS-FUNKTIONALITÄTEN UND DATENIMPORT

Prozessbeschreibung. Qualitätsberichte erstellen und vorbefüllen

11 Anwendungsprogrammierung

Whitepaper. Produkt: combit Relationship Manager. Einbindung externer FiBu-/Warenwirtschaftsdaten. combit GmbH Untere Laube Konstanz

Übersicht über Datenbanken

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

105.3 SQL-Datenverwaltung

Wie kommen die Befehle zum DBMS

SQL - Übungen Bearbeitung der Datenbank Personal (1)

SQL (Structured Query Language) Schemata Datentypen

Kapitel DB:VI (Fortsetzung)

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

Notes2DB. Machen Sie Ihre Notes-Datenbanken relational! Vortragender: Mag. Ing. Johannes Fiala, Fiala Web Development GmbH

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

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

A Generic Database Web Service for the Venice Lightweight Service Grid

Transkript:

Java und Datenbanken Ein Überblick Benjamin Lietzau & Philipp Meyer Sommersemester 2011 1

Themenüberblick 29.03.11 - Benjamin Lietzau & Philipp Meyer - Java und Datenbanken 2

Themenüberblick 1. Einführung 1. ODMG 2. Relationale Datenbanken 2. Java-basierte Datenbanken 1. Apache Derby 2. HSQLDB 3. JDBC-API 4. SQLJ 5. OR-Mapping 29.03.11 - Benjamin Lietzau & Philipp Meyer Java und Datenbanken 3

Einführung 29.03.11 - Benjamin Lietzau & Philipp Meyer - Java und Datenbanken 4

ODMG Object Database Management Group Herstellerverbund Normen und Standards Objektorientierter Datenbanksysteme OMG (Object Management Group) übernahm nach Release 3 Release 4 in Arbeit Modellierungswerkzeuge Object Definition Language (ODL) ODL kann problemlos in C++, Java, SmallTalk übersetzt werden 29.03.11 - Benjamin Lietzau & Philipp Meyer Java und Datenbanken 5

Relationale Datenbanken Bis heute der meist genutzte Standard SQL ist gängige Abfrage-/Manipulierungssprache Zeilen (Tupel) Spalten (Attribut) Datenbankschema beschreibt die Tabellenstruktur 29.03.11 - Benjamin Lietzau & Philipp Meyer Java und Datenbanken 6

Das Problem Anwendungsprogramm Javaprogramm SQL DB Database 29.03.11 - Benjamin Lietzau & Philipp Meyer Java und Datenbanken 7

Java-basierte Datenbanken 29.03.11 - Benjamin Lietzau & Philipp Meyer - Java und Datenbanken 8

Apache Derby Apache DB Subprojekt Basierend auf Java Nutzt JDBC Sehr klein und handlich /leichtgewichtig Embedded/Mobile Systems Kann direkt in Applikationen eingebettet werden (Embedded Database) 29.03.11 - Benjamin Lietzau & Philipp Meyer Java und Datenbanken 9

HSQLDB Lightweight 100% Java SQL Database Engine Datenbank-System nur 700kb Groß Integrierbarkeit Kann als Server/Client Variante benutzt werden Kann lokal in Programm integriert werden Flexibilität durch drei Tabellentypen Memory only Logdatei-Tabelle Gecachte-Tabelle Geschwindigkeit analog zu MySQL 29.03.11 - Benjamin Lietzau & Philipp Meyer Java und Datenbanken 10

Java Database Connectivity (JDBC) 29.03.11 - Benjamin Lietzau & Philipp Meyer - Java und Datenbanken 11

Was ist JDBC? Programmierschnittstelle (API) Zugriff auf Datenquellen Überwiegend für Datenbanksysteme genutzt Quellcode unabhängig von Datenquelle 29.03.11 - Benjamin Lietzau & Philipp Meyer Java und Datenbanken 12

Architektur Java Anwendung JDBC API JDBC Treibermanagement Treiber API MySQL Treiber Oracle Database Treiber Weitere Treiber 29.03.11 - Benjamin Lietzau & Philipp Meyer Java und Datenbanken 13

Treiber - Typen Typ 1: JDBC-ODBC-Brücke Typ 2: Plattformabhängige Programmbibliothek Typ 3: Zugriff über eine Middleware Typ 4: Direkter Zugriff auf die Datenbank 29.03.11 - Benjamin Lietzau & Philipp Meyer Java und Datenbanken 14

Architektur - Treibertypen JDBC Treibermanagement JDBC-ODBC Brückentreiber Plattformunabhängiger Treiber ODBC-API ODBC Treibermanagment Plattformabhängiger Treiber Middleware Plattformunabhängiger Treiber ODBC-Treiber Datenbank Typ 1 Typ 2 Typ 3 Typ 4 29.03.11 - Benjamin Lietzau & Philipp Meyer Java und Datenbanken 15

Verbindungsaufbau Variante 1 Treiberklasse laden (seit Java 6 nicht mehr notwendig) Class.forName(StringName) Datenquelle definieren Syntax: <jdbc> ::= jdbc:<treiber>:<optionen> <Treiber> ::= Vordefinierter Treiberkürzel <Optionen> ::= evtl. Optionen die der Treiber bietet URL also abhängig von der Datenquelle und evtl. Optionen Beispiel: jdbc:derby:c:/data/mydb;create=true connection = DriverManager.getConnection('jdbc:derby:c:/data/mydb;create=true'); 29.03.11 - Benjamin Lietzau & Philipp Meyer Java und Datenbanken 16

Verbindungsaufbau Variante 2 Problem: Client-Seitige Festlegung der Verbindungsdaten Lösung: Verbindungsdaten zentral verwalten Mittel: JNDI Aus Zeitgründen gehen wir nicht tiefer drauf ein 29.03.11 - Benjamin Lietzau & Philipp Meyer Java und Datenbanken 17

Daten abfragen Syntax einer SQL-Abfrage: SELECT <Spalten> FROM <Tabelle> WHERE <Bedingung> GROUP BY <Attribut> HAVING <Bedingung> ORDER BY <Sortierung>; Statement erstellen und SQL-Abfrage ausführen stat = connection.createstatement(); rs = stat.executequery('select * FROM Mitarbeiter;'); 29.03.11 - Benjamin Lietzau & Philipp Meyer Java und Datenbanken 18

Mit Datensätze arbeiten Alle Datensätze ausgeben while (rs.next()) { System.out.println(rs.getString(1)); } 29.03.11 - Benjamin Lietzau & Philipp Meyer Java und Datenbanken 19

Mit Datensätze arbeiten Alle Spalten aller Datensätze ausgeben while (rs.next()) { for(int i = 1; i <= stat.getmetadata().getcolumncount(); i++) { System.out.print(rs.getString(i)+, ); } Systme.out.print( \n ); } 29.03.11 - Benjamin Lietzau & Philipp Meyer Java und Datenbanken 20

Mit Datensätze arbeiten Cursor im ResultSet bewegen rs.next(); //nächster Datensatz rs.previus(); //vorheriger Datensatz rs.absolut(x); //gehe zum Datensatz x (int) rs.relative(x); //bewegt sich um x Datensätze vor (int) rs.afterlast(); //hinter letzten Datensatz rs.beforefirst(); //vor ersten Datensatz rs.first(); //zeigen auf erster Datensatz rs.last(); //zeige auf letzten Datensatz 29.03.11 - Benjamin Lietzau & Philipp Meyer Java und Datenbanken 21

Mit Datensätze arbeiten Positionsabfrage rs.isafterlast(); rs.isbeforefirst(); rs.isfirst(); rs.islast(); 29.03.11 - Benjamin Lietzau & Philipp Meyer Java und Datenbanken 22

Problematiken Wert ist NULL String text = rs.getstring(3); if(rs.wasnull()) { System.out.println('Feld enthält NULL'); } Anzahl der Ergebnisse rs.last(); int rownumber = rs.getrow(); rs.beforefirst(); 29.03.11 - Benjamin Lietzau & Philipp Meyer Java und Datenbanken 23

Problematiken - SQL-Injection Manipulation der SQL-Anweisung durch Dritte Gefahrenquelle: Parameter / Formulare Beispiel: Tabelle mit den Feldern: Name, Nachname, Wohnort Ziel der Abfrage: Wie viele Menschen wohnen in Ort x? SQL-Anweisung: 'SELECT count(*) FROM Benutzerdaten WHERE ort =' + x Angreifer übergibt für x 'Lemgo UNION SELECT Nachname FROM Benutzerdaten;' 29.03.11 - Benjamin Lietzau & Philipp Meyer Java und Datenbanken 24

Problematiken - SQL-Injection Komplette Abfrage: 'SELECT count(*) FROM Benutzerdaten WHERE ort = Lemgo UNION SELECT Nachname FROM Benutzerdaten;' Zusätzlich zu dem Ergebnis von count bekommt der Angreifer sämtliche Nachnamen aus der Tabelle Benutzerdaten, welche für ihn nicht vorgesehen waren 29.03.11 - Benjamin Lietzau & Philipp Meyer Java und Datenbanken 25

Problematiken - SQL-Injection Lösung: PreparedStatement Anstatt: Statement st = con.createstatement(); String abfrage = 'SELECT count(*) FROM Benutzerdaten WHERE ort = '; ResultSet rs = st.executequery(abfrage + eingabe + "';"); Verwendet man: String abfrage = 'SELECT count(*) FROM Benutzerdaten WHERE ort =?'; PreparedStatement pst = con.preparestatement(abfrage); pst.setstring(1, eingabe); ResultSet rset = pst.executequery(); 29.03.11 - Benjamin Lietzau & Philipp Meyer Java und Datenbanken 26

Datensätze anlegen/aktualisieren Syntax zum einfügen eines Datensatzes INSERT INTO <Tabelle> (<Spalte 1>, <Spalte 2>,, <Spalte n>) VALUES (<Wert 1>, <Wert 2>,, <Wert n>); Syntax zum aktualisieren eines Datensatzes UPDATE <Tabelle> SET <Spalte> = <Wert> WHERE <Bedingung>; Statement erstellen und SQL-Befehl ausführen stat = connection.createstatement(); count = stat.executeupdate('insert INTO Mitarbeiter VALUES(Heinz, Meier)'); 29.03.11 - Benjamin Lietzau & Philipp Meyer Java und Datenbanken 27

Datensätze anlegen/aktualisieren executeupdate() liefert Anzahl an bearbeiteten Datensätzen zurück Zeitaufwändig Mehrere Befehle ausführen: try { Statement stat = con.createstatement(); stat.addbatch( "INSERT INTO Mitarbeiter VALUES(Heinz, Meier)" ); stat.addbatch( "UPDATE Mitarbeiter SET name=jürgen WHERE id=15" ); stat.addbatch( "INSERT INTO Mitarbeiter VALUES(Micha, Jörens)" ); uc = s.executebatch(); } catch ( BatchUpdateException e ) { //Fehlerbehandlung } 29.03.11 - Benjamin Lietzau & Philipp Meyer Java und Datenbanken 28

Datensätze anlegen/aktualisieren Daten können auch direkt im ResultSet angepasst werden rs.updatestring("name", e.getname()); rs.updatestring("vorname", e.getvorname()); rs.updatestring("beschreibung", e.getbeschreibung()); rs.updaterow(); 29.03.11 - Benjamin Lietzau & Philipp Meyer Java und Datenbanken 29

SQLJ 29.03.11 - Benjamin Lietzau & Philipp Meyer - Java und Datenbanken 30

SQLJ Entwicklung von IBM, Oracle, Sybase und Informing SQL92-Standard (Embedded SQL) Auf Quelltextebene: Keine proprietären Eigenschaften des jeweiligen SQL-Dialektes Dann kompatibel mit DB-Format ggf. Probleme bei DB-Migration etc. 29.03.11 - Benjamin Lietzau & Philipp Meyer Java und Datenbanken 31

SQLJ Vorteile Direkter Zugriff auf Java-Variablen Bei Nutzung von DB2 bessere Authentifizierung möglich Klassische SQL-Statements möglich SQLJ-Translator erkennt Fehler beim Kompilieren Korrekte Syntax Typenkompatibilität zwischen SQL und Java Datenbankschema JDBC erst während der Laufzeit Nachteile Viele IDE unterstützen kein SQLJ Präprozessor nötig (SQL in Java-Code umwandeln) 29.03.11 - Benjamin Lietzau & Philipp Meyer Java und Datenbanken 32

SQLJ-Prinzip Profilmanager beinhaltete SQL-Befehle Customizer passt Profile an DBMS-Spezifika an Java-Quelltext mit SQLJ Java- Quelltext SQLJ- Profil Java Compiler SQLJ-Translator Syntaxprüfung Bytecode SQLJ- Laufzeitsystem JDBC Database 29.03.11 - Benjamin Lietzau & Philipp Meyer Java und Datenbanken 33

SQLJ Laufzeitsystem liegt in sqlj.runtime.* Statements beginnen mit #sql Variablen vom Quellcode möglich (:x) Ausdrücke aus dem Quellcode möglich (:x + y) IN oder OUT oder INOUT für Datenübergabe #sql [[<context>]] { <SQL-Anweisung> } 29.03.11 - Benjamin Lietzau & Philipp Meyer Java und Datenbanken 34

SQLJ - Beispiel SQLJ-Anweisung - INSERT. #sql [ctx] { }; INSERT INTO DSN8710.EMP (EMPNO, FIRSTNME, MIDINIT, LASTNAME, HIREDATE, SALARY) VALUES (:empno, :firstname, :midinit, :lastname, CURRENT DATE, :salary) 29.03.11 - Benjamin Lietzau & Philipp Meyer Java und Datenbanken 35

SQLJ - Beispiel JDBC zum Vergleich. PreparedStatement stmt = conn.preparestatement( "INSERT INTO DSN8710.EMP " + "(EMPNO, FIRSTNME, MIDINIT, LASTNAME, HIREDATE, SALARY) " + "VALUES (?,?,?,?, CURRENT DATE,?)"); stmt.setstring(1, empno); stmt.setstring(2, firstname); stmt.setstring(3, midinit); stmt.setstring(4, lastname); stmt.setbigdecimal(5, salary); stmt.executeupdate(); stmt.close(); 29.03.11 - Benjamin Lietzau & Philipp Meyer Java und Datenbanken 36

OR-Mapping 29.03.11 - Benjamin Lietzau & Philipp Meyer - Java und Datenbanken 37

OR-Mapping Ablegen von Objekten in einer relationalen Datenbank Programm sieht nur noch objektorientierte Datenbank Schlechtere Datenbankleistung Zusätzliche Zwischenschicht (Klassenbibliotheken) nötig Bsp. Hibernate oder Java Persistence API Einfachste Vorgehensweise: Klassen entsprechen Tabellen Jedes Objekt ist eine Zeile Identität des Objektes ist der Primärschlüssel Referenzen zu anderen Objekten über Primär-/Fremdschlüsselbeziehungen 29.03.11 - Benjamin Lietzau & Philipp Meyer Java und Datenbanken 38

OR-Mapping Beispiel Kunde 1 1 Adresse Name: String Strasse: String Ort: String PLZ: String Java public class Kunde{ public String name; public Adresse adresse; } public class Adresse{ public String strasse; public String ort; public String plz; } SQL create table Kunde( KundeID integer primary key, Name varchar(20), Strasse varchar(20), Ort varchar(20), PLZ varchar(20) ) 29.03.11 - Benjamin Lietzau & Philipp Meyer Java und Datenbanken 39

OR-Mapping Anwendungsprogramm Objektmodell Zwischenschicht (z.b. Hibernate) Abbildung Relationales Datenbankschema Database 29.03.11 - Benjamin Lietzau & Philipp Meyer Java und Datenbanken 40

OR-Mapping Vererbung abbilden ebenso möglich 3 Möglichkeiten Tabelle pro Vererbungshierarchie Attribute Superklasse & abgeleiteter Klassen in einer Tabelle Diskriminator (legt fest was welcher Klasse gehört) Tabelle pro Unterklasse Für jede abgeleitete Klassen wird eine weitere Tabelle angelegt Tabelle pro konkrete Klasse Attribute der Superklasse werden in die Tabelle der abgeleiteten Klasse abgelegt Keine Tabelle für die Superklasse 29.03.11 - Benjamin Lietzau & Philipp Meyer Java und Datenbanken 41

OR-Mapping Beispiel - Tabelle pro Vererbungshierarchie Kreis Radius: Integer Geometrische Form Flächeninhalt: Integer Polygon AnzahlEcken: Integer create table GeometrischeForm( ID integer primary key, Flächeninhalt integer, Radius integer, AnzahlEcken integer, Kantenlänge integer, FormTyp varchar(20)) Quadrat Kantenlänge: Integer Diskriminator 29.03.11 - Benjamin Lietzau & Philipp Meyer Java und Datenbanken 42

OR-Mapping Beispiel - Tabelle pro Unterklasse Kreis Radius: Integer Geometrische Form Flächeninhalt: Integer Polygon AnzahlEcken: Integer Quadrat Kantenlänge: Integer create table Kreis( KreisID integer primary key, Flächeninhalt integer, Radius integer ) create table Quadrat( QuadratID integer primary key, Flächeninhalt integer, AnzahlEcken integer, Kantenlänge integer) 29.03.11 - Benjamin Lietzau & Philipp Meyer Java und Datenbanken 43

OR-Mapping Beispiel - Tabelle pro konkrete Klasse create table GeometrischeForm( FormID integer primary key, Flächeninhalt integer) Kreis Radius: Integer Geometrische Form Flächeninhalt: Integer Polygon AnzahlEcken: Integer Quadrat Kantenlänge: Integer create table Kreis( FormID integer primary key, Radius integer, foreign key(formid) references GeometrischeForm(FormID)) create table Polygon( FormID integer primary key, AnzahlEcken integer, foreign key(formid) references GeometrischeForm(FormID)) create table Quadrat( FormID integer primary key, Kantenlänge integer, foreign key(formid) references Polygon(FormID)) 29.03.11 - Benjamin Lietzau & Philipp Meyer Java und Datenbanken 44

Quellen 29.03.11 - Benjamin Lietzau & Philipp Meyer - Java und Datenbanken 45

Quellenangaben 1. Java und Datenbanken, Wolfgang Dehnhardt, 1. Auflage 2003, Hanser Verlag 2. Datenbanken & Java, Gunter Saake et. al, 1. Auflage 2000, dpunkt.verlag 1. http://download.oracle.com/javadb/ 2. http://db.apache.org/derby/ 3. http://hsqldb.org/ 4. http://www.escha.net/java/books/javainsel8/ 5. http://is.uni-paderborn.de/fileadmin/informatik/ag-engels/lehre/ss08/daba/folien/daba08-kapitel-6.pdf 1. http://de.wikipedia.org/wiki/object_database_management_group 2. http://de.wikipedia.org/wiki/java_database_connectivity 3. http://de.wikipedia.org/wiki/embedded_sql 4. http://de.wikipedia.org/wiki/apache_derby 5. http://de.wikipedia.org/wiki/hsqldb 6. http://de.wikipedia.org/wiki/sqlj 29.03.11 - Benjamin Lietzau & Philipp Meyer Java und Datenbanken 46

Vielen Dank für Ihre Aufmerksamkeit! Benjamin Lietzau & Philipp Meyer FB 8 - Angewandte Informatik/Umweltingenierwesen benjamin.lietzau@stud.hs-owl.de philipp.meyer@stud.hs-owl.de www.hs-owl.de