Programmierung und Datenbanken II

Größe: px
Ab Seite anzeigen:

Download "Programmierung und Datenbanken II"

Transkript

1 Programmierung und Datenbanken II Sommersemesters

2 Menschen wollen nicht mit Datenbanken reden Mensch, als Benutzer von AWS, möchte Keine SQL-Befehle eingeben, um an Informationen zu gelangen Lieber mit einer grafischen Oberfläche oder einer Website interagieren Konsequenz: Dann muss die Oberfläche bzw. das zu Grunde liegende Programm mit der DB kommunizieren 2

3 Menschen wollen nicht mit Datenbanken reden 3

4 Menschen wollen nicht mit Datenbanken reden 4

5 Was haben wir bisher getan? Anwendungsbereich analysiert Datenobjekte + Beziehungen identifiziert Modelle erstellt Modellhafte Aufbereitung der Analyse (ERM/SERM) Überführung in Relationenschema Ggf. Normalisierung Datenbankserver eingerichtet Server läuft Tabellenstruktur mithilfe von SQL angelegt 5

6 Was wollen wir jetzt tun? Einbindung der Datenbank in ein JAVA-Programm à Programmierung in JAVA Erstellen einer Verbindung Schreiben von Daten Lesen von Daten Verwendung der JDBC (Java DataBase Connection) Objekt-Relationales Mapping (Hibernate) 6

7 java.sql.* Verwendung von Klassen des Pakets java.sql Objekte, wie z.b. Verbindung (Connecetion) SQL-Statement (Statement) Abfrageergebnis (ResultSet) Verstehen Nachrichten, wie z.b. Verbinde dich mit dem Datenbankserver Führe die folgende SQL-Anweisung aus Gib mir den Wert für Attribut X des ersten Datensatzes aus 7

8 Verbindung herstellen Trennung von Programm und Datenbank à zur Interaktion muss eine Verbindung hergestellt werden Realisierung mithilfe des Interface Connection Ein Programm kann/muss mit mehreren DBs gleichzeitig arbeiten 8

9 Verbindung herstellen So funktioniert es nicht: Connection con = new Connection ("Server-Name", "User-Name", "Passwort"); weil: viele unterschiedliche SQL-Datenbank-Systeme (z.b. MySQL, Oracle, IBM und andere) Verschiedene Treiber für jede Art von DB-System Deshalb bittet man die Treiber-Verwaltung, eine Verbindung zu einem DB-System herzustellen. Passenden Treiber in Klassenpfad aufnehmen (z.b. 9

10 Verbindung herstellen import java.sql.*;... Class.forName("com.mysql.jdbc.Driver"); //deprecated since jdbc 4.0 Connection connection = DriverManager.getConnection( "jdbc:mysql:// :3306/db_beispiel_lehre", "db_lehre_a, "*******");... Was passiert hier? Der DriverManager wird um eine Verbindung gebeten: String zur Lokalisierung der Datenbank und zugehörigen Treibers Benutzername mit Zugriffsrechten Passwort des Benutzers Variable connection referenziert nun ein Verbindungsobjekt 10

11 Verbindung herstellen Aufbau des Strings zur Lokalisierung der DB: Gibt an, mit welcher Datenbank man eine Verbindung herstellen möchte jdbc : [Treiber-Name] : [Ort der DB] Beispiele: jdbc:mysql:// /db_lehre_beispiel jdbc:hsqldb:file:c:/dir/database 11

12 Kommunikation mit der DB Bisher existiert lediglich eine Verbindung zur DB Zur Kommunikation werden die Methoden des interface Statement verwendet: Statement statement = connection.createstatement(); java.sql :: Statement Ausführen von SQL-Statements (INSERT, UPDATE, DELETE)... + execute(string sql):boolean + executequery(string sql): ResultSet Ausführen von SQL-Abfragen (SELECT)... 12

13 Beispiel Daten manipulieren import java.sql.*;... // Treiber laden Class.forName("com.mysql.jdbc.Driver"); // Verbindung herstellen Connection connection = DriverManager.getConnection( "jdbc:mysql:// :3306/db_lehre_a", "db_lehre_a, ********"); // Statement erzeugen Statement statement = connection.createstatement(); // INSERT statement.execute("insert INTO TInterpret + "VALUES ('Nirvana', 1987)"); // UPDATE statement.execute("update TAlbum SET Album = 'Geraeusch' + "WHERE CD_ID = 9234"); // DELETE statement.execute( DELETE FROM TAlbum + "WHERE CD_ID = 4963");... 13

14 Daten abfragen SELECT-Anweisungen inkl. Ergebnisobjekt mittels ResultSet ergebnismenge = statement.executequery("select-statement"); Ergebnismenge ist eine Menge von Zeilen Jede Zeile enthält einen Datensatz Zeiger, der immer auf eine der Zeilen zeigt Verfügt über Methoden, die: Attributwerte der aktuellen Zeile auslesen den Zeiger bewegen 14

15 ResultSet einige Methoden, die den Zeiger bewegen: Methode Bedeutung + next():boolean Sofern möglich, wird der Zeiger eine Zeile tiefer gesetzt, liefert true zurück, sofern dies erfolgreich war + previous():boolean Analog zu next() nach oben + beforefirst() Setzt den Zeiger vor die erste Zeile + first():boolean Setzt den Zeiger auf die erste Zeile, liefert false, wenn ResultSet leer ist + last() Setzt den Zeiger auf die letzte Zeile + absolute(int n):boolean Setzt den Zeiger auf die n-te Zeile, liefert true sofern dies erfolgreich war 15

16 ResultSet einige Methoden, die Attributwerte einer Zeile auslesen: Methode Bedeutung + getstring(int n):string Liefert den Wert des n-ten Attributs als String + getint(int n):int Liefert den Wert des n-ten Attributs als int + getlong(int n):long Liefert den Wert des n-ten Attributs als long + getfloat(int n):float Liefert den Wert des n-ten Attributs als float + getdouble(int n):double Liefert den Wert des n-ten Attributs als double + getdate(int n):date Liefert den Wert des n-ten Attributs als Date + getboolean(int n):boolean + getmetadata():resultsetmetadata Liefert den Wert des n-ten Attributs als boolean Liefert ein Objekt mit Informationen über die Zeile (wieviele Attribute, welche Typen,...) 16

17 Beispiel Daten abfragen Kontonummer Buchung_ID Konto_ID Kontoname Zeitstempel Kontotyp_ID (0,*) (1,1) (0,*) Soll Kontotyp Konto Buchung Kontotypname (0,*) Haben Betrag Buchungstext Relationenmodell: Kontotyp (Kontotyp_ID, Kontotypname) Konto (Konto_ID, Kontotyp -> Kontotyp.Kontotyp_ID, Kontonummer, Kontoname) Buchung (Buchung_ID, Soll -> Konto.Konto_ID, Haben -> Konto.Konto_ID, Zeitstempel, Betrag, Buchungstext) Das Feld Kontotyp in Konto erhält einen Fremdschlüssel von Kontotyp.Kontotyp_ID, Soll und Haben in Buchung erhalten einen Fremdschlüssel von Konto.Konto_ID 17

18 Tabellen Beispiel Daten abfragen 18

19 Beispiel Daten abfragen Regina Haarig glaubt nicht, dass ihre Buchungssätze in der Datenbank abgebildet werden können. Geben Sie ihr alle Buchungssätze der Datenbank in der Form Soll an Haben aus. SELECT FROM WHERE AND Sollkonto.Kontonummer, Sollkonto.Kontoname, 'an', Habenkonto.Kontonummer, Habenkonto.Kontoname, Betrag Konto AS Sollkonto, Konto AS Habenkonto, Buchung Habenkonto.Konto_ID = Buchung.Haben Sollkonto.Konto_ID = Buchung.Soll; 19

20 Beispiel Daten abfragen ResultSet rs = statement.executequery( "SELECT Sollkonto.Kontonummer, " + "Sollkonto.Kontoname, " + "'an', " + "Habenkonto.Kontonummer, " + "Habenkonto.Kontoname, " + "Betrag " + "FROM Konto AS Sollkonto, " + "Konto AS Habenkonto, " + "Buchung " + "WHERE Habenkonto.Konto_ID = Buchung.Haben " + "AND Sollkonto.Konto_ID = Buchung.Soll"); // Daten abfragen while (rs.next()) { System.out.println( rs.getint(1) + " " + rs.getstring(2) + " " + rs.getstring(3) + " " + rs.getint(4) + " " + rs.getstring(5) + " " + rs.getdouble(6)); } // Daten ausgeben 20

21 Beispielprogramm Neues Album hinzufügen public static void newalbum() throws Exception { // Daten einlesen System.out.println ("ID, Name und Interpret des Albums:"); BufferedReader br = new BufferedReader( new InputStreamReader(System.in)); int id = Integer.parseInt(br.readLine()); String album = br.readline(); String interpret = br.readline(); // DB-Verbindung herstellen Connection connection = DriverManager.getConnection( "jdbc:mysql:// /db_lehre_a, "db_lehre_a", "Nudelholz"); // SQL-Statement ausführen Statement statement = connection.createstatement(); statement.execute( "INSERT INTO TAlbum " + "VALUES (" + id + ", '" + album + "', '" + interpret + "')"); System.out.println("Das Album wurde hinzugefügt!"); // Verbindung beenden statement.close(); connection.close(); } 21

22 Beenden der Kommunikation Sämtliche SQL-Objekte Connection Statement ResultSet sollten geschlossen werden, sofern nicht mehr benötigt: Connection verbindung = DriverManager.getConnection(...) Statement anfrage = connection.createstatement(); ResultSet ergebnis = anfrage.executequery(...);... ergebnis.close(); anfrage.close(); verbindung.close(); 22

23 BEISPIEL - MUSIKDATENBANK 23

24 Beispielprogramm Ausgabe aller Alben eines Interpreten public static void printalbumofinterpret() throws Exception { // Daten einlesen System.out.println ( Name des Interpreten:"); BufferedReader br = new BufferedReader( new InputStreamReader(System.in)); String interpret = br.readline(); // DB-Verbindung herstellen Connection connection = DriverManager.getConnection( "jdbc:mysql:// /db_lehre_a, "db_lehre_a", "Nudelholz"); // SQL-Statement ausführen Statement statement = connection.createstatement(); ResultSet ergebnis = statement.executequery( "SELECT CD_ID, Album FROM TAlbum " + "WHERE Interpret = '" + interpret + "'"); while (ergebnis.next()) { System.out.println( ergebnis.getint("cd_id") + " " + ergebnis.getstring("interpret")); } // Verbindung beenden statement.close(); connection.close(); } 24

25 Exceptions wenn etwas schief geht Bei der Kommunikation mit einem DB-Server kann eine Menge schief gehen Abbruch der Verbindung Gewünschte DB existiert nicht SQL-Statement kann nicht interpretiert werden... Um mit entsprechenden Situationen umgehen zu können, benutzt Java Exceptions (Ausnahmezustände) 25

26 Die Idee hinter Exceptions Eine Methode merkt, dass etwas unvorhergesehenes geschieht Sie erzeugt ein Objekt vom Typ Exception und wirft es (throw) Geworfene Exception wird in einem Catch-Block abgefangen, die Ordnung wird wiederhergestellt Danach geht das Programm weiter 26

27 Der Try-Catch-Block try { // Anweisungen } catch(fehlertyp Objekt) { // Anweisungen } catch(fehlertyp Objekt) { // Anweisungen } finally { // Anweisungen } Ermittlung, welcher Fehlertyp Ausführung der entsprechenden Anweisungen zur Fehlerbehandlung Durchführung abschließender Anweisungen und Fortsetzung des Programmablaufs 27

28 DB-Aktionen mit Fehlerbehandlung Connection connection = null; Statement statement = null; ResultSet ergebnis = null; // Datenbank-Aktionen, bei denen evtl. Fehler auftreten können try { connection = DriverManager.getConnection( "jdbc:mysql:// /db_lehre_a", "db_lehre_a, "Nudeholz"); statement = connection.createstatement(); ergebnis = statement.executequery( "SELECT CD_ID, Album FROM s _talbum " + "WHERE Interpret = 'Die Ärzte'"); while (ergebnis.next()) { System.out.println( ergebnis.getint("cd_id") + " " + ergebnis.getstring("album")); } ergebnis.close(); statement.close(); connection.close(); } catch (SQLException e) { // wenn ein Fehler aufgetreten ist, gib die Meldung aus System.err.println(e.getMessage()); } 28

29 SQL oder Java? Sinnvolle SQL-Statements formulieren "SELECT CD_ID, Album FROM TAlbum " + "WHERE Interpret = 'Die Ärzte'" oder Java-Code schreiben // SQL-Abfrage nach allen Alben ResultSet ergebnis = statement.executequery("select * FROM TAlbum"); ergebnis.beforefirst(); while (ergebnis.next()) { // nachträgliche Selektion mithilfe einer if-anweisung if (rs.getstring("interpret").equals("die Ärzte")) { System.out.println( ergebnis.getint("cd_id") + " " + ergebnis.getstring("album")); } } 29

30 Zusammenfassung JDBC erlaubt es Java-Programmen, mit Datenbank-Servern zu kommunizieren Ein Connection-Objekt repräsentiert eine Verbindung zu einer Datenbank auf einem bestimmten Server Ein Statement-Objekt repräsentiert eine Anfrage (Query), die einfach als SQL-String angegeben wird Ein ResultSet-Objekt repräsentiert einen Zeiger, der immer auf eine Zeile der Ergebnismenge zeigt Ein Exception-Objekt repräsentiert eine Ausnahmesituation und wird mithilfe des Try- Catch-Blocks behandelt 30

31 OBJEKT-RELATIONALES MAPPING 31

32 Paradigm Mismatch Identität Granularität Datennavigation Vererbung Assoziation 32

33 Motivation Objektorientierte Programmierung vs. Relationale Speicherung Problem/Schwachstelle der bisherigen Lösung: SQL-Code als String + Datenbankanbindung in JAVA- Code integriert Auslagern der SQL-Queries + Anbindung in eigenen Datenbank-Manager-(Klasse) Effizienz / schlechte Wartbarkeit Weitere Argumente für ORM: Bekannte wiederkehrende Probleme Konsistente Speicherung von Laufzeitdaten 33

34 Definitionen OR-Mapping Objektrelationales Mapping (ORM)... Abbildung der Laufzeitdaten eines in einer objektorientierten Sprache geschriebenen Programms auf die zugehörigen Daten in einer relationalen Datenbank und umgekehrt. [1]...bedeutet, dass man ein Objekt einem Datensatz zuordnet und umgekehrt. Im Programm schreibt man dann für das Laden, Speichern, Ändern und Löschen keine manuellen SQL-Anweisungen sondern überlässt die Generierung von Abfragen einem ORM-Framework wie z.b. Hibernate für Java. [2] [1] [2] 34

35 Was ist OR-Mapping? Objekte werden als Datensätze in entsprechenden relationale Datenbanken persistiert (abgespeichert) Die Datensätze können wieder in Objekte überführt werden, mit denen dann gearbeitet werden kann Objekte werden in korrespondierenden Datensätzen verwaltet (hinzugefügt, geändert, gelöscht) und gespeichert Kein manueller SQL-Code nötig ORM-Framework organisiert Zugriff (generiert den SQL-Code) auf relationale DB, z.b. Hibernate (für Java) ORM-Framework sichert Konsistenz in DB 35

36 Wie funktioniert OR-Mapping? Eine Klasse in Java wird einer Tabelle der Datenbank zugeordnet, dabei gilt: Attribute Spalte Objekt Datensatz Assoziationen Schlüsselattribute Klassendefinition: Zugehörige Tabelle in DB: ManagerID Name 1 Hirte 2 Bauer 36

37 Hibernate ORM-Framework für Java Open-Source Ermöglicht Speicherung von Java-Objekten in relationale Datenbanken und generiert wiederum Objekte aus diesen Datensätzen stellt Methoden bereit, mit denen Objekte (als Datensatz) der Datenbank hinzugefügt, abgeändert und entfernt werden können nutzt XML-Konfigurationen und Java-Annotations Hibernate führt Kommunikation mit DBMS über SQL- Queries Logo: 37

38 Exkurs: Annotations Sprachelemente im Java, die das Einbinden von weiteren Informationen (Metadaten) in den Code erlauben Diese Informationen wurden bis Java 5.0 in zusätzlichen Dateien abgelegt (aufwändig) Beginnen mit gefolgt von ihrem Namen und gegebenenfalls weiteren Parametern in runden Klammern Beispiel Hinweis, dass Methode überschrieben wird: public class Superklasse{ public void methode(){ //mache irgendwas } } public class Subklasse extends public void methode(){ //mache es anders } } 38

39 Beispiel UML Diagramm 39

40 Klassenhierarchien/Vererbung im ORM 1. One Table Per Class Hierachy (SINGLE_TABLE) Gesamte (Vererbungs-)Hierachie in einer Tabelle. Alle Attribute in Tabelle abgebildet, wenn Attribut in Klasse nicht vorhanden, dann NULL. Zusätzliche Spalte für Bezeichnung der Klasse. 2. One Table Per Subclass (JOINED) Jede Klasse in eigener Tabelle 3. One Table Per Concrete Class (TABLE_PER_CLASS) Eigene Tabelle für jede konkrete Klasse. Attribute der abstrakten Klassen werden in der jeweiligen Subklasse eingebunden 40

41 Klasse HerdenManager = "HerdenManager") public class @Column(name = "MangerID") private int = "Name") private String = "manager") private Rind[] herde; Import der Annotationen Klasse entspricht Entity Ordnet Klasse einer Tabelle in der DB zu Attribut ist Primärschlüssel Attribut wird automatisch generiert Ordnet Attribut einer Spalte mit dem Namen zu Definiert eine Eins zu viele - Beziehung (Parent) } //Getter und Setter-Methoden 41

42 Klasse Tier = = = "Art", discriminatortype = = "Tier") public class Tier @Column(name = "TierID") private int = "Name") private String name; //Getter und Setter-Methoden WI Legt fest, wie Vererbungsbeziehung abgebildet wird, hier: komplette Vererbungshierachie in einer Tabelle Definiert (Diskriminator-)Spalte, in der abgebildet wird, zu welcher Klasse ein Datensatz gehört, hier: Spalte Art, Datentyp Datensätze dieser Klasse (Tier) haben den Wert Tier in der Diskriminator-Spalte

43 Klasse Rind = = "Rind") public class Rind extends = "Farbe") private String farbe; Subklasse Rind wird ebenfalls der Tabelle Tier zugeordnet In der Diskriminator-Spalte wird für Datensätze dieser Klasse der Wert Rind = EuterVolumen") private = "Manager") private HerdenManager manager; Definiert eine Viele zu eins - Beziehung (Child) } //Getter und Setter-Methoden 43

44 Assoziationen 1. One To One Jedem Element aus A ist genau ein Element aus B zugeordnet & jedem Element aus B genau eins aus A. 2. One To Many (1:n) Jedem Element aus A können mehrere Elemente aus B, allerdings kann jedem Element aus B maximal 1 Element aus A zugeordnet werden. parent-side child-side (B) 3. Many To Many Jedem Element aus A können mehrere Elemente aus B & jedem Element aus B können wiederrum mehrere Elemente aus A zugeordnet werden. 44

45 Assoziation - Typ 1:n Klasse HerdenManager (Parent) Klasse Rind = "manager") private Rind[] herde; bidirektionale 1:n Beziehung viele Rinder sind einem = "Manager") private HerdenManager manager; -> zusätzliche Spalte in Tabelle Rind, in der jedem Rind ein HerdenManager zugeordnet wird (in Datenbank nur Abbildung einer unidirektionalen definiert die Fremdschlüsselspalte in Tabelle Rind hier: = manager ) sagt aus, dass die Assoziation in der Datenbank durch das Attribut manager der anderen Klasse (Rind) umgesetzt wird -> wird nur bei bidirektionalen Assoziationen benötigt

46 Auszug Datenbank Tabelle HerdenManager ManagerID Name 1 Hirte Tabelle Tier TierID Name Farbe EuterVolumen Manager Art 1 Vera braun 10 1 Rind 2 Leo NULL NULL NULL Tier 3 Elsa schwarz 8 1 Rind 46

47 Probleme Konvertierung von Datentypen, z.b. String (in Java) und VARCHAR (in SQL) Mehrwertige Attribute (z.b. Listen, Arrays,...) Kardinalitäten Abbildung der Vererbungsbeziehung (Lösung durch Abbildung der gesamten Klassenhierachie in einer Tabelle) Hohe Anzahl von Joins -> Performance Persistieren von Eigenschaften, nicht von Methoden! 47

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

JDBC. Es kann z.b. eine ODBC-Treiberverbindung eingerichtet werden, damit das JAVA-Programm auf eine ACCESS-DB zugreifen kann. JDBC in 5 Schritten JDBC (Java Database Connectivity) ist eine Sammlung von Klassen und Schnittstellen, mit deren Hilfe man Verbindungen zwischen Javaprogrammen und Datenbanken herstellen kann. 1 Einrichten

Mehr

Java Database Connectivity (JDBC) 14.07.2009 Walther Rathenau Gewerbeschule 1

Java Database Connectivity (JDBC) 14.07.2009 Walther Rathenau Gewerbeschule 1 Java Database Connectivity (JDBC) 14.07.2009 Walther Rathenau Gewerbeschule 1 Was ist JDBC? Hauptsächlich eine Sammlung von Java Klassen und Schnittstellen für eine einfache Verbindung von Java Programmen

Mehr

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

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

Mehr

Persistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten)

Persistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten) Persistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten) O/R Mapping - Objekte (Attribute) - 1:1, 1:n, n:m Beziehungen - Vererbungen (- Interfaces)

Mehr

Oracle: Abstrakte Datentypen:

Oracle: Abstrakte Datentypen: Oracle: Abstrakte Datentypen: Oracle bietet zwei mögliche Arten um abstrakte Datentypen zu implementieren: Varying Array Nested Table Varying Array (kunde) kdnr kdname gekaufteart 1 Mustermann 1 4 5 8

Mehr

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

Programmieren II. Beispiele für RDBMS. Relationale Datenbanken. Datenbanken SQL. Dr. Klaus Höppner JDBC. Hochschule Darmstadt SS 2008 Programmieren II Datenbanken Dr. Klaus Höppner SQL Hochschule Darmstadt SS 2008 JDBC 1 / 20 2 / 20 Relationale Datenbanken Beispiele für RDBMS Ein Datenbanksystem ist ein System zur Speicherung von (großen)

Mehr

Java Persistence API 2.x. crud + relationships + jp-ql

Java Persistence API 2.x. crud + relationships + jp-ql Java Persistence API 2.x crud + relationships + jp-ql Grundprinzip 10.02.10 2 Problematik Man muss bei der Persistierung immer das Klassenmodell und dessen Umsetzung im Datenmodell (in der DB) berücksichtigen.

Mehr

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

seit Java 1.1 Bestandteil der API: packages java.sql, javax.sql JDBC inoffizielle Abkürzung für: Java Database Connectivity seit Java 1.1 Bestandteil der API: packages java.sql, javax.sql ist eine Menge von Klassen und Methoden, um aus Java-Programmen relationale Datenbanken

Mehr

JDBC. Allgemeines ODBC. java.sql. Beispiele

JDBC. Allgemeines ODBC. java.sql. Beispiele JDBC Java Data Base Connectivity Programmierschnittstelle für relationale Datenbanken Sammlung von Klassen, welche zum Aufbau einer Verbindung zwischen einem Java-Programm und einer Datenbank dienen Verwendet

Mehr

Einführung in die Informatik II

Einführung in die Informatik II Einführung in die Informatik II Die Structured Query Language SQL Prof. Dr. Nikolaus Wulff SQL Das E/R-Modell lässt sich eins zu eins auf ein Tabellenschema abbilden. Benötigt wird eine Syntax, um Tabellen

Mehr

Beispiel: DB-Mock (1/7)

Beispiel: DB-Mock (1/7) Beispiel: DB-Mock (1/7) Aufgabe: DB, auf die vereinfachend nur lesend zugeriffen wird mocken warum: benötigte keine DB-Lizenz, garantiert gleiche Werte ohne aufwändiges reset, kein Zeitverlust durch Verbindungsaufbau

Mehr

Eclipse und EclipseLink

Eclipse und EclipseLink Eclipse und EclipseLink Johannes Michler Johannes.Michler@promatis.de PROMATIS, Ettlingen Zugriff auf Oracle Datenbanken aus Eclipse RCP Anwendungen via EclipseLink 18.09.2009 1 Gliederung Eclipse als

Mehr

Datenbank und Informationssysteme

Datenbank und Informationssysteme Datenbank und Informationssysteme Inhaltsverzeichnis 1 Programmierung von Datenbankzugriffen 3 1.1 Architektur des SQL/CLI am Beispiel JDBC................... 4 1.2 Anfragen und Ergebnismengen in JDBC......................

Mehr

Webbasierte Informationssysteme

Webbasierte Informationssysteme SS 2004 Prof. Dr. Stefan Böttcher Universität Paderborn - SS 2004 - Prof. Dr. Stefan Böttcher Folie 1 Was ist eine relationale Datenbank? Menge von Relationen (=Tabellen) und Constraints (=Integritätsbedingungen)

Mehr

10. Datenbank Design 1

10. Datenbank Design 1 1 Die Hauptaufgabe einer Datenbank besteht darin, Daten so lange zu speichern bis diese explizit überschrieben oder gelöscht werden. Also auch über das Ende (ev. sogar der Lebenszeit) einer Applikation

Mehr

Wie kommen die Befehle zum DBMS

Wie kommen die Befehle zum DBMS 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?

Mehr

Java Database Connectivity-API (JDBC)

Java Database Connectivity-API (JDBC) Java Database Connectivity-API (JDBC) Motivation Design Grundlagen Typen Metadaten Transaktionen Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1 Motivation Problem: Zugriff auf ein DBMS ist herstellerabhängig

Mehr

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

Datenbankentwurf & Datenbankzugriff mit JDBC. Georg Köster Sven Wagner-Boysen Datenbankentwurf & Datenbankzugriff mit JDBC Georg Köster Sven Wagner-Boysen 6. November 2007 Gliederung 2 Datenbankentwurf für ProminentPeople.info ER-Modell Relationaler Entwurf Normalisierung Datenbankzugriff

Mehr

Vorlesung Informatik II

Vorlesung Informatik II Vorlesung Informatik II Universität Augsburg Sommersemester 2011 Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 10. Java: Datenhaltung mit Datenbanken 1 Datenbank-Programme Derby (Hersteller: Apache

Mehr

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

Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java. Oliver Kalz Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java Oliver Kalz Agenda Grundlagen Objektpersistenz Objektrelationales Mapping Performance Fazit

Mehr

vs. Fehler zur Übersetzungszeit

vs. Fehler zur Übersetzungszeit Client-Server-Architektur, Anbindung von Programmiersprachen, Call-Level-Schnittstellen: /, JDBC, :, J, gespeicherte Prozeduren, prozedurale Erweiterungen: /PSM, PL/. IPD, Forschungsbereich Systeme der

Mehr

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

UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme UNIVERSITÄT ULM Fakultät für Ingenieurswissenschaften und Informatik Institut für Datenbanken und Informationssysteme 8. Übung zur Vorlesung Datenbanksysteme WS 08/09 Musterlösung Aufgabe 8-1: SQLJ //

Mehr

MySQL mit MyLinux. boehm@2xp.de. 2/2003 boehm@2xp.de Java unter Linux

MySQL mit MyLinux. boehm@2xp.de. 2/2003 boehm@2xp.de Java unter Linux Bild: www.carsten-lehmann.de MySQL mit MyLinux boehm@2xp.de 1 MySQL mit MyLinux Überblick über MySQL & Co Überblick über MySQL MySQL in 5 Minuten JDBC mit MySQL Ende 2 Überblick über MySQL & Co 3 Datenbanken

Mehr

Datenbanken & Informationssysteme Übungen Teil 1

Datenbanken & Informationssysteme Übungen Teil 1 Programmierung von Datenbankzugriffen 1. Daten lesen mit JDBC Schreiben Sie eine Java-Anwendung, die die Tabelle Books in der Datenbank azamon ausgibt. Verwenden Sie dabei die SQL-Anweisung select * from

Mehr

Betreutes Programmieren Vorlesung Informatik II, Blatt 7 Musterlösung

Betreutes Programmieren Vorlesung Informatik II, Blatt 7 Musterlösung SS 2011 Fakultät für Angewandte Informatik Lehrprofessur für Informatik 15.06.2011 Prof. Dr. Robert Lorenz Betreutes Programmieren Vorlesung Informatik II, Blatt 7 Musterlösung Programmieraufwand für geübte

Mehr

Datenbankzugriff mit JDBC

Datenbankzugriff mit JDBC Java: Kapitel 8 Datenbankzugriff mit JDBC Programmentwicklung WS 2008/2009 Holger Röder holger.roeder@informatik.uni-stuttgart.de Überblick über Kapitel 8 Einführung in SQL und JDBC Verbindung zur Datenbank

Mehr

Hibernate. Vortragender : Nabil Janah Kursleiter : Prof. Dr. Björn Dreher Lehrveranstaltung : Komponenten-Architekturen. Nabil janah 1 Hibernate

Hibernate. Vortragender : Nabil Janah Kursleiter : Prof. Dr. Björn Dreher Lehrveranstaltung : Komponenten-Architekturen. Nabil janah 1 Hibernate Hibernate Vortragender : Nabil Janah Kursleiter : Prof. Dr. Björn Dreher Lehrveranstaltung : Komponenten-Architekturen Nabil janah 1 Hibernate Inhalt Hibernate allgemeines Vorteile von Hibernate Hibernate-Architektur

Mehr

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER INHALTSVERZEICHNIS 1. Datenbanken 2. SQL 1.1 Sinn und Zweck 1.2 Definition 1.3 Modelle 1.4 Relationales Datenbankmodell 2.1 Definition 2.2 Befehle 3.

Mehr

Datenmanagement in Android-Apps. 16. Mai 2013

Datenmanagement in Android-Apps. 16. Mai 2013 Datenmanagement in Android-Apps 16. Mai 2013 Überblick Strukturierung von datenorientierten Android-Apps Schichtenarchitektur Möglichkeiten der Datenhaltung: in Dateien, die auf der SDCard liegen in einer

Mehr

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

DB-Programmierung. Lehr- und Forschungseinheit Datenbanken und Informationssysteme 1. Ziele. DB2 Zugriff mit Java selbst programmieren DB-Programmierung Lehr- und Forschungseinheit Datenbanken und Informationssysteme 1 Ziele static SQL verstehen Build-Prozess / Art des Datenzugriffs Host-Variablen Vor- / Nachteile dynamic SQL verstehen

Mehr

SQL structured query language

SQL structured query language Umfangreiche Datenmengen werden üblicherweise in relationalen Datenbank-Systemen (RDBMS) gespeichert Logische Struktur der Datenbank wird mittels Entity/Realtionship-Diagrammen dargestellt structured query

Mehr

Client/Server-Programmierung

Client/Server-Programmierung Client/Server-Programmierung WS 2014/2015 Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 20. November 2015 Betriebssysteme / verteilte

Mehr

IV. Datenbankmanagement

IV. Datenbankmanagement Wirtschaftsinformatik 2 (PWIN) IV. Datenbankmanagement Kapitel 2: Datenmanipulationssprache SQL Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security 1 Agenda 1.

Mehr

Grundlagen der Informatik 2

Grundlagen der Informatik 2 Grundlagen der Informatik 2 Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de Raum 2.202 Tel. 03943 / 659 338 1 Gliederung 1. Einführung

Mehr

Udo Matthias Munz. Datenbanken und SQL. mit. Einführung. Informationstechnik

Udo Matthias Munz. Datenbanken und SQL. mit. Einführung. Informationstechnik Udo Matthias Munz Datenbanken und SQL mit Einführung Informationstechnik Zugriff auf eine Datenbank... 2 ODBC... 2 Eine DSN einrichten... 3 Verbindung zu einer Datenbank... 4 Datenbank... 4 Metadaten der

Mehr

Java und Datenbanksysteme Datenbankanbindung mit JDBC

Java und Datenbanksysteme Datenbankanbindung mit JDBC Java und Datenbanksysteme Datenbankanbindung mit JDBC 30.05.2001 Stefan Niederhauser sn@atelier-w.ch 1-Einführung Datenbanksysteme Java und Datenbanken: JDBC Geschichte der JDBC-Versionen Vergleich von

Mehr

Verteidigung gegen SQL Injection Attacks

Verteidigung gegen SQL Injection Attacks Verteidigung gegen SQL Injection Attacks Semesterarbeit SS 2003 Daniel Lutz danlutz@watz.ch 1 Inhalt Motivation Demo-Applikation Beispiele von Attacken Massnahmen zur Verteidigung Schlussfolgerungen 2

Mehr

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

PHP + MySQL. Die MySQL-Datenbank. Hochschule Karlsruhe Technik & Wirtschaft Internet-Technologien T3B250 SS2014 Prof. Dipl.-Ing. PHP + MySQL Die MySQL-Datenbank Zusammenspiel Apache, PHP, PHPMyAdmin und MySQL PHPMyAdmin Verwaltungstool Nutzer Datei.php oder Datei.pl Apache HTTP-Server PHP Scriptsprache Perl Scriptsprache MySQL Datenbank

Mehr

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

Java Application 1 Java Application 2. JDBC DriverManager. JDBC-ODBC Br idge. ODBC Driver Manager. Dr iver C. Dr iver D. 1 Copyright 1996-1997 by Axel T. Schreiner. All Rights Reserved. 7 Datenbankzugriff Prinzip Dieser Abschnitt beschäftigt sich mit dem Paket java.sql, das eine SQL-Schnittstelle für Java verkapselt. Java-Programme

Mehr

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

SQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99 SQL Früherer Name: SEQUEL SQL: Structured Query Language Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99 SQL ist eine deklarative Anfragesprache Teile von SQL Vier große Teile:

Mehr

4. Objektrelationales Mapping Grundlagen der Programmierung II (Java)

4. Objektrelationales Mapping Grundlagen der Programmierung II (Java) 4. Objektrelationales Mapping Grundlagen der Programmierung II (Java) Prof. Dr. Bernhard Humm Hochschule Darmstadt University of Applied Sciences Sommersemester 2006 Übersicht Grundlagen der Programmierung

Mehr

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden. Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,

Mehr

Open-Source Transparente Persistence (keine Interfaces, keine Ober- Klassen) Caching

Open-Source Transparente Persistence (keine Interfaces, keine Ober- Klassen) Caching 1 Was ist Hibernate Hibernate ist ein Open-Source-Java-Persistenz-Framework für relationale Datenbanken Persistenz-Frameworks: kapseln und abstrahiert den Zugriff auf eine Speicherschicht -> Zwischenschicht

Mehr

Hauptschritte einer JDBC-App

Hauptschritte einer JDBC-App JDBC Java DataBase Connectivity Sammlung von Klassen und Interfaces zur Arbeit mit Datenbanken auf Basis von SQL Package java.sql Datenbankmanagementsystem und eine oder mehrere Datenbanken Jdbc Driver,

Mehr

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

OO Programmiersprache vs relationales Model. DBIS/Dr. Karsten Tolle OO Programmiersprache vs relationales Model Vorgehen bisher Erstellen eines ER-Diagramms Übersetzen in das relationale Datenmodell Zugriff auf das relationale Datenmodell aus z.b. Java ER rel. Modell OO

Mehr

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

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und 2005. combit GmbH Untere Laube 30 78462 Konstanz combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit Relationship Manager Datensatzhistorie mit dem SQL Server 2000 und 2005 Datensatzhistorie mit dem SQL Server 2000 und 2005-2 - Inhalt

Mehr

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

Ziel: wie kann man in Java auf Datenbanken zugreifen und Daten manipulieren? dazu brauchen wir: Datenbanken - SQL und JDBC Projektseminar Seite 1 Was passiert heute? Ziel: wie kann man in Java auf Datenbanken zugreifen und Daten manipulieren? dazu brauchen wir: Kenntnisse in SQL Kenntnisse von JDBC

Mehr

Datenbanken. Ein DBS besteht aus zwei Teilen:

Datenbanken. Ein DBS besteht aus zwei Teilen: Datenbanken Wikipedia gibt unter http://de.wikipedia.org/wiki/datenbank einen kompakten Einblick in die Welt der Datenbanken, Datenbanksysteme, Datenbankmanagementsysteme & Co: Ein Datenbanksystem (DBS)

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

Mehr

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

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben. MySQL-Befehle 1. Einleitung In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben. 2. Arbeiten mit Datenbanken 2.1 Datenbank anlegen Eine Datenbank kann man wie folgt

Mehr

Java Database Connectivity-API (JDBC)

Java Database Connectivity-API (JDBC) Java Database Connectivity-API (JDBC) Motivation Design Grundlagen Typen Metadaten Transaktionen Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1 Motivation Problem: Zugriff auf ein DBMS ist Herstellerabhängig

Mehr

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

SQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar Qt-Seminar Dienstag, 10.2.2009 SQL ist......die Abkürzung für Structured Query Language (früher sequel für Structured English Query Language )...ein ISO und ANSI Standard (aktuell SQL:2008)...eine Befehls-

Mehr

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

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

Mehr

Übungsaufgabe Transaktion als Middleware

Übungsaufgabe Transaktion als Middleware Übungsaufgabe Transaktion als Middleware und Java Persistence API Client/Server Abstraktes Komponentenmodell Entscheidende Punkte Erweiterung der Invoke-Methode Context-Verwaltung Transaktionsbehandlung

Mehr

3. Datenbankzugriff (JDBC) Grundlagen der Programmierung II (Java)

3. Datenbankzugriff (JDBC) Grundlagen der Programmierung II (Java) 3. Datenbankzugriff (JDBC) Grundlagen der Programmierung II (Java) Prof. Dr. Bernhard Humm Hochschule Darmstadt University of Applied Sciences Sommersemester 2006 Übersicht Grundlagen der Programmierung

Mehr

Relationale Datenbanken in der Praxis

Relationale Datenbanken in der Praxis Seite 1 Relationale Datenbanken in der Praxis Inhaltsverzeichnis 1 Datenbank-Design...2 1.1 Entwurf...2 1.2 Beschreibung der Realität...2 1.3 Enitiy-Relationship-Modell (ERM)...3 1.4 Schlüssel...4 1.5

Mehr

Dokumentation zur Anlage eines JDBC Senders

Dokumentation zur Anlage eines JDBC Senders Dokumentation zur Anlage eines JDBC Senders Mithilfe des JDBC Senders ist es möglich auf eine Datenbank zuzugreifen und mit reiner Query Datensätze auszulesen. Diese können anschließend beispielsweise

Mehr

Kapitel DB:VI (Fortsetzung)

Kapitel DB:VI (Fortsetzung) Kapitel DB:VI (Fortsetzung) VI. Die relationale Datenbanksprache SQL Einführung SQL als Datenanfragesprache SQL als Datendefinitionssprache SQL als Datenmanipulationssprache Sichten SQL vom Programm aus

Mehr

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 3 - Objektorientierung Warum Objektorientierung Daten und Funktionen möglichst eng koppeln und nach außen kapseln Komplexität der Software besser modellieren

Mehr

9. Einführung in Datenbanken

9. Einführung in Datenbanken 9. Einführung in Datenbanken 9.1 Motivation und einführendes Beispiel 9.2 Modellierungskonzepte der realen Welt 9.3 Anfragesprachen (Query Languages) 9.1 Motivation und einführendes Beispiel Datenbanken

Mehr

Multimedia im Netz Wintersemester 2013/14. Übung 03 (Nebenfach)

Multimedia im Netz Wintersemester 2013/14. Übung 03 (Nebenfach) Multimedia im Netz Wintersemester 2013/14 Übung 03 (Nebenfach) Ludwig-Maximilians-Universität München Multimedia im Netz WS 2013/14 - Übung 3-1 Datenbanken und SQL Mit Hilfe von Datenbanken kann man Daten

Mehr

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

SQLJ. Standardisierte Java-DB. DB-Schnittstelle. Spezifikationen. Oracle, IBM, Informix, Sybase,, Tandem, Sun, Microsoft stehen dahinter SQLJ Standardisierte Java-DB DB-Schnittstelle Spezifikationen Part 0: Embedded SQL für Java (ANSI-Standard; Object Language Binding) Statische Einbettung von SQL-Anweisungen in Java-Quelltext Part 1: Java

Mehr

Datenbanken für Online Untersuchungen

Datenbanken für Online Untersuchungen Datenbanken für Online Untersuchungen Im vorliegenden Text wird die Verwendung einer MySQL Datenbank für Online Untersuchungen beschrieben. Es wird davon ausgegangen, dass die Untersuchung aus mehreren

Mehr

Übung: Data Warehousing und Data Mining

Übung: Data Warehousing und Data Mining Übung: Data Warehousing und Data Mining Sebastian Wandelt 20. Oktober 2011 wandelt@informatik.hu-berlin.de Überblick Organisatorisches Kurze Einführung JDBC PL/SQL 1. Aufgabenblatt Ablauf des Semesters

Mehr

Kommunikation und Datenhaltung

Kommunikation und Datenhaltung Institut für Programmstrukturen und Datenorganisation (IPD) Kommunikation und Datenhaltung Datenbankanwendungsentwicklung Institut für Programmstrukturen und Datenorganisation (IPD) Überblick über den

Mehr

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

Datenbanksysteme. Programmieren von Datenbankzugriffen mit JDBC. Burkhardt Renz. Fachbereich MNI Technische Hochschule Mittelhessen Programmieren von Datenbankzugriffen mit JDBC Fachbereich MNI Technische Hochschule Mittelhessen Sommersemester 2015 Überblick über das Package java.sql Übersicht Architektur von JDBC Grundstruktur eines

Mehr

Leseprobe. Bernd Müller, Harald Wehr. Java Persistence API 2. Hibernate, EclipseLink, OpenJPA und Erweiterungen ISBN: 978-3-446-42693-1

Leseprobe. Bernd Müller, Harald Wehr. Java Persistence API 2. Hibernate, EclipseLink, OpenJPA und Erweiterungen ISBN: 978-3-446-42693-1 Leseprobe Bernd Müller, Harald Wehr Java Persistence API 2 Hibernate, EclipseLink, OpenJPA und Erweiterungen ISBN: 978-3-446-42693-1 Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-42693-1

Mehr

Analyse und Modellierung von Informationssystemen

Analyse und Modellierung von Informationssystemen Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2013 1 / 22 EAA Patterns: ORM 2 / 22 Entwurfsmuster für Enterprise-Anwendungs-Architekturen Neben

Mehr

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

Programmieren II. Relationale Datenbanken. Vorlesung 07. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011. Programmieren II Martin Schultheiß Hochschule Darmstadt Sommersemester 2011 1 / 26 Datenbanken SQL-Grundlagen JDBC SQL-Constraints 2 / 26 Relationale Datenbanken Ein Datenbanksystem ist ein System zur

Mehr

Programmieren II. Objekt-relationales Mapping. Vorlesung 08. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011

Programmieren II. Objekt-relationales Mapping. Vorlesung 08. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011 Programmieren II Martin Schultheiß Hochschule Darmstadt Sommersemester 2011 1 / 39 2 / 39 Mit JDBC kann Java sich mit relationalen Datenbanken verbinden. Hierbei entsprechen jeder Datensatz einer Zeile

Mehr

Datumsangaben, enthält mindestens Jahr, Monat, Tag

Datumsangaben, enthält mindestens Jahr, Monat, Tag Datenbanken mit SQL Informatik - Sprenger Häufig wird mit Tabellenkalkulationen gearbeitet, obwohl der Einsatz von Datenbanken sinnvoller ist. Tabellenkalkulationen wie Microsoft Excel oder LibreOffice

Mehr

Javakurs zu Informatik I. Henning Heitkötter

Javakurs zu Informatik I. Henning Heitkötter Javakurs zu Informatik I Arrays vergleichen Implementieren Sie folgende Methode, die prüft, ob die Elemente der beiden Arrays an jeder Position übereinstimmen: public static boolean identisch(int[] a,

Mehr

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

Inhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung Inhalt Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle Daten und Tabellen Normalisierung, Beziehungen, Datenmodell SQL - Structured Query Language Anlegen von Tabellen Datentypen (Spalten,

Mehr

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

Einführung in JDBC. IFIS Universität zu Lübeck 18.04.2007 Einführung in JDBC IFIS Universität zu Lübeck 18.04.2007 1 Was ist JDBC Standard für relationale DB: SQL Vor JDBC: Open Database Connectivity (ODBC), uniforme Schnittstelle für Zugriff JDBC: Programmierschnittstelle

Mehr

Datenbank - Teil 3. Ziele: Eine Datenbank anlegen mit SQL. Daten eingeben mit SQL. Abfragen stellen mit SQL und PHP.

Datenbank - Teil 3. Ziele: Eine Datenbank anlegen mit SQL. Daten eingeben mit SQL. Abfragen stellen mit SQL und PHP. Ziele: Eine Datenbank anlegen mit SQL Daten eingeben mit SQL Abfragen stellen mit SQL und PHP 1 Datenbankserver Entwickelt von der schwedischen Aktiengesellschaft MySQL Unter GNU General Public License

Mehr

Fakultät Angewandte Informatik Programmierung verteilter Systeme 28.11.2011. Übungen zur Vorlesung Informatik II, Blatt 6

Fakultät Angewandte Informatik Programmierung verteilter Systeme 28.11.2011. Übungen zur Vorlesung Informatik II, Blatt 6 WS 2011/12 Fakultät Angewandte Informatik Programmierung verteilter Systeme 28.11.2011 Prof. Dr. Bernhard Bauer Übungen zur Vorlesung Informatik II, Blatt 6 Abgabe: Montag, 05.12.2011, 12.00 Uhr, Informatik

Mehr

II.1.1. Erste Schritte - 1 -

II.1.1. Erste Schritte - 1 - ! 1. Grundelemente der Programmierung! 2. Objekte, Klassen und Methoden! 3. Rekursion und dynamische Datenstrukturen! 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.1.1. Erste Schritte - 1

Mehr

Konzeptueller Entwurf

Konzeptueller Entwurf Konzeptueller Entwurf UML Klassendiagrame UML Assoziationen Entspricht Beziehungen Optional: Assoziationsnamen Leserichtung ( oder ), sonst bidirektional Rollennamen Kardinalitätsrestriktionen UML Kardinalitätsrestriktionen

Mehr

O/R Mapper. O/R Mapper anhand von NHibernate & Entity Framework Thomas Mentzel März 2010

O/R Mapper. O/R Mapper anhand von NHibernate & Entity Framework Thomas Mentzel März 2010 O/R Mapper O/R Mapper anhand von NHibernate & Entity Framework Thomas Mentzel März 2010 Agenda Object-relational impedance mismatch Mapping Session Abfragen No. 2 Object-relational impedance mismatch Object-relational

Mehr

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

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

Mehr

Probeklausur Datenbanktechnologie

Probeklausur Datenbanktechnologie Probeklausur Datenbanktechnologie Prof. Dr. Ingo Claßen Name: Vorname: MatrNr: Bewertung 1 25 2 15 3 10 4 10 Übung 40 Σ = 100 Punkte Punkte: Note: Notenspiegel 100 95 1,0 94 90 1,3 89 85 1,7 84 80 2,0

Mehr

Gregor Raschke 2008 HIBERNATE. Eine Einführung

Gregor Raschke 2008 HIBERNATE. Eine Einführung 1 HIBERNATE Eine Einführung Inhalt 2 Einleitung Beispielkonfiguration Die hibernate.cfg.xml Eine Beispieltransaktion Abfragemöglichkeiten JPA und Hibernate Ressourcen und Quellen Einleitung (1) - Geschichtliches

Mehr

Beispiel: Methode mit einem Fehler. Diese Methode wird problematisch, wenn von außen eine Dauer von 0 Sekunden angegeben wird, etwa im Aufruf

Beispiel: Methode mit einem Fehler. Diese Methode wird problematisch, wenn von außen eine Dauer von 0 Sekunden angegeben wird, etwa im Aufruf 16 Exceptions Zur Behandlung unerwarteter Situationen bietet Java Unterstützung in Form von Exceptions oder Ausnahmen. Den Sinn von Exceptions können wir Ihnen an einem kleinen Beispiel klarmachen. Nehmen

Mehr

Benutzung eines Login Modules zur Authentifizierung unter JBoss 4.0.5

Benutzung eines Login Modules zur Authentifizierung unter JBoss 4.0.5 Benutzung eines Login Modules zur Authentifizierung unter JBoss 4.0.5 Erstellung der Datenbank Tabellen Als Login Module soll das in der JBoss Installation bereits vorhandene DatabaseServerLoginModule

Mehr

Klausur zur Vorlesung Datenbanksysteme I

Klausur zur Vorlesung Datenbanksysteme I Prof. Dr. W. Kießling 30.01.2002 Lehrstuhl für Datenbanken und Informationssysteme Universität Augsburg Klausur zur Vorlesung Datenbanksysteme I Wintersemester 2001/2002 Name Vorname Matrikelnummer Aufgabe

Mehr

Einführung in Javadoc

Einführung in Javadoc Einführung in Javadoc Johannes Rinn http://java.sun.com/j2se/javadoc Was ist Javadoc? Javadoc ist ein Werkzeug, dass eine standardisierte Dokumentation für die Programmiersprache Java unterstützt. Vorteil:

Mehr

Distributed Computing Group

Distributed Computing Group JAVA TUTORIAL Distributed Computing Group Vernetzte Systeme - SS 06 Übersicht Warum Java? Interoperabilität grosse und gut dokumentierte Library weit verbreitet Syntax sehr nahe an C Erfahrung: Java wird

Mehr

Labor 3 - Datenbank mit MySQL

Labor 3 - Datenbank mit MySQL Labor 3 - Datenbank mit MySQL Hinweis: Dieses Labor entstand z.t. aus Scripten von Prof. Dr. U. Bannier. 1. Starten des MySQL-Systems MySQL ist ein unter www.mysql.com kostenlos erhältliches Datenbankmanagementsystem.

Mehr

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

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen

Mehr

Referenzielle Integrität SQL

Referenzielle Integrität SQL Referenzielle Integrität in SQL aus Referential Integrity Is Important For Databases von Michael Blaha (Modelsoft Consulting Corp) VII-45 Referenzielle Integrität Definition: Referenzielle Integrität bedeutet

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1 Kapitel 11 Fehler und Ausnahmen Fehler und Ausnahmen 1 Ziele Fehlerquellen in Programmen und bei der Programmausführung verstehen Das Java-Konzept der Ausnahmen als Objekte kennenlernen Ausnahmen auslösen

Mehr

Hochschule Karlsruhe Technik und Wirtschaft- 10.7.2013. Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt.

Hochschule Karlsruhe Technik und Wirtschaft- 10.7.2013. Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt. Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Datenbanken und Informationssysteme II Szenario: Projektverwaltung. Es gibt Projekte, Projektleiter, Mitarbeiter und ihre Zuordnung zu Projekten.

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer

Mehr

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin PhpMyAdmin = grafsches Tool zur Verwaltung von MySQL-Datenbanken Datenbanken erzeugen und löschen Tabellen und Spalten einfügen,

Mehr

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

PHP und MySQL. Integration von MySQL in PHP. Zellescher Weg 12 Willers-Bau A109 Tel. +49 351-463 - 32424. Michael Kluge (michael.kluge@tu-dresden. Zentrum für Informationsdienste und Hochleistungsrechnen (ZIH) PHP und MySQL Integration von MySQL in PHP Zellescher Weg 12 Willers-Bau A109 Tel. +49 351-463 - 32424 (michael.kluge@tu-dresden.de) MySQL

Mehr

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski. www.iit.tu-cottbus.de

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski. www.iit.tu-cottbus.de 08 Datenbanken Übung SQL Einführung Eckbert Jankowski www.iit.tu-cottbus.de Datenmodell (Wiederholung, Zusammenfassung) Objekte und deren Eigenschaften definieren Beziehungen zwischen den Objekten erkennen/definieren

Mehr

Primitive Datentypen

Primitive Datentypen Primitive Datentypen 2 Arten von Datentypen: primitive Datentypen (heute) Objekte (später) Java ist streng typisiert, d.h. für jede Variable muß angegeben werden was für eine Art von Wert sie aufnimmt.

Mehr

Die folgende Tabelle stellt die Grundbegriffe der objektorientierten und der relationalen Welt gegenüber:

Die folgende Tabelle stellt die Grundbegriffe der objektorientierten und der relationalen Welt gegenüber: 1.Einleitung: Bei der Arbeit mit objektorientierten Programmiersprachen stellt sich häufig die Frage wie Objekte persistiert werden können. Da vor allem relationale Datenbanken sich großer Beliebtheit

Mehr