Algorithmen und Datenstrukturen II

Save this PDF as:
 WORD  PNG  TXT  JPG

Größe: px
Ab Seite anzeigen:

Download "Algorithmen und Datenstrukturen II"

Transkript

1 Algorithmen und Datenstrukturen II Alexander Goesmann Bioinformatics Resource Facility Center for Biotechnology Universität Bielefeld Vorlesung Sommer 2010

2 Überblick Datenspeicherung in relationalen Datenbanken Persistente Datenspeicherung in Java mit JDBC ORM Objekt-relationales Mapping Datenspeicherung mit Hibernate

3 Datenspeicherung in relationalen Datenbanken Teil I

4 Relationale Datenbanken Relationale Datenbank dient zur elektronischen Datenverwaltung in Computersystemen Beruht auf relationalem Datenbankmodell von Edgar F. Codd aus dem Jahr 1970 Basiert auf Relationen und Operationen darauf (Vgl. relationale Algebra) Verwaltung der gespeicherten Daten mit relationalem Datenbankmanagementsystem (RDBMS) Abfrage und Manipulation der Daten mit Datenbanksprache SQL (Structured Query Language)

5 Grundlegende Konzepte Relationale Datenbank ist Sammlung von Tabellen (Relationen) mit gespeicherten Daten Jede Zeile (Tupel) in einer Tabelle ist ein Datensatz (record) Tupel besteht aus Reihe von Attributwerten (Attribute = Eigenschaften), den Spalten der Tabelle Relationenschema legt Anzahl und Typ der Attribute für eine Relation fest Eindeutige Identifizierung von Datensätzen über Schlüssel (key)

6 Beispiel Quelle: Wikipedia

7 Beziehungen zwischen Tabellen Redundante Speicherung von Daten vermeiden Verwendung eines eindeutigen Schlüssels pro Tabelle zur Identifizierung des Datensatzes (primary key) Verweis aus anderen Tabellen auf Daten mit Hilfe dieses Schlüssels Derartige Attribute werden als Fremdschlüssel (foreign key) bezeichnet Tabellen ohne Fremdschlüssel heißen flache Tabellen

8 Tabelle anlegen Syntax: CREATE TABLE "Tabellen_Name" " "("Spalte 1" "Datentyp_für_Spalte_1", " " "Spalte 2" "Datentyp_für_Spalte_2", " "... )" Beispiel: CREATE TABLE Nutzer (Nutzer-ID int, " " "Vorname varchar(50), " " " "Nachname varchar(50)) "

9 Daten einfügen Syntax: INSERT INTO <Tabellenname> " (<Spaltenname> [, weitere Spaltennamen]) VALUES (<Wert für die erste Spalte> [, weitere Werte])" Beispiel: INSERT INTO Nutzer (Nutzer-ID, Vorname, Nachname) " VALUES (13, 'Hans', 'Müller')"

10 Daten abfragen Syntax: SELECT... FROM... WHERE <Bedingung 1> " [<logischer Operator> <Bedingung 2>]" Beispiele: Select * FROM Nutzer" Select * FROM Nutzer WHERE Vorname = Hans " Select Autor, Titel FROM Bücher WHERE Verlagsjahr > 2000 "AND Verlag!= KVG "

11 Daten aktualisieren Syntax: UPDATE <Tabelle> SET <Name einer Spalte> = <Ausdruck aus Spalten, Konstanten, Funktionen> [, weitere Spaltennamen = Ausdruck] WHERE <Bedingung>" Beispiele: UPDATE Bücher SET Datum = " UPDATE Bücher SET Datum = Datum WHERE Datum < 20"

12 Daten löschen Syntax: DELETE FROM <Tabelle> WHERE <Bedingung>" Beispiele: DELETE FROM Nutzer" DELETE FROM Entliehen WHERE Nutzer-ID = 12"

13 Weiterführende Themen Zusammengesetzte Schlüssel Indexierung JOINs Komplexe Abfragen und Unterabfragen Normalisierung & Normalformen Optimierung Gespeicherte Funktionen und Prozeduren

14 Persistente Datenspeicherung in Java mit JDBC Teil II

15 JDBC Java Database Connectivity Einheitliche Datenbankschnittstelle zu DBMS verschiedener Hersteller Java Application JDBC Client Machine RDBMS proprietary protocol RDBMS Database Server

16 JDBC Treiber Für jedes DBMS ist ein JDBC-Treiber nötig Typ 1 bildet die JDBC API auf andere native API ab Typ 2 teilweise in Java, teilweise in nativem Code geschrieben Typ 3 vollständig in Java geschrieben, kommuniziert über einen middleware-server über ein datenbankunabhängiges Protokoll Typ 4 vollständig in Java geschrieben, implementiert das jeweilige Datenbank-Protokoll

17 Verbindung herstellen Treiber laden Class.forName( com.mysql.jdbc.driver ) Treiber registriert sich beim Laden selbstständig beim DriverManager Verbindungs-URL jdbc:<treiber>:<dbname>[propertylist] z.b. jdbc:mysql:testdb DriverManager vs. DataSource

18 DriverManager Treiber registrieren sich beim DriverManager Erhält Verbindungs-URL Optional Benutzername, Passwort Löst den Treiber über Namen in URL auf Beispiele Connection con = DriverManager.getConnection ( jdbc:derby:coffees ) DriverManager.getConnection ( jdbc:derby:coffees, user, password )

19 DataSource Interface Beschreibt eine Verbindung zur Datenbank Wird häufig außerhalb der Anwendung definiert und z.b. über Java Naming and Directory Interface (JNDI) abgefragt (hängt vom verwendeten Framework ab) Beispiel InitialContext ic = new InitialContext(); DataSource ds = ic.lookup("java:comp/env/ jdbc/mydb"); Connection con = ds.getconnection();

20 Programmatische DataSource Beispiel: ClientDataSource ds = new org.apache.derby.jdbc.clientdatasource(); ds.setport(1527); ds.sethost("localhost"); ds.setuser("app") ds.setpassword("app"); Connection con = ds.getconnection();

21 Beispieltabelle COFFEES COF_NAME SUP_ID PRICE SALES TOTAL Colombian French_Roast Espresso Colombian_Decaf French_Roast_Decaf

22 Connection Connection stellt die Verbindung zur Datenbank dar Kann über Statement-Objekte SQL Code ausführen Ergebnisse der Statements werden durch ResultSets repräsentiert

23 Daten aus Tabelle lesen Statement stmt = con.createstatement(); ResultSet srs = stmt.executequery("select COF_NAME, PRICE FROM COFFEES"); ResultSet repräsentiert zurückgegebene Tabelle Methoden zum Auswählen der Zeile Methoden zum Auslesen einer Zelle zur aktuellen Zeile -> API

24 ResultSet Beispiel ResultSet srs = stmt.executequery( "SELECT COF_NAME, PRICE FROM COFFEES"); while (srs.next()) { String name = srs.getstring("cof_name"); float price = srs.getfloat("price"); System.out.println(name + " " + price); }

25 Daten in der Tabelle ändern Statement stmt = conn.createstatement(); ResultSet srs = stmt.executequery("select COF_Name from COFFEES where price = 7.99"); srs.next(); srs.updatestring("cof_name", "Foldgers"); srs.updaterow(); Änderungen werden erst mit updaterow() geschrieben Abbrechen mit cancelupdates()

26 Weitere Features Daten einfügen und löschen INSERT/DELETE Statements Transaktionen Es werden entweder alle Änderungen gemacht oder keine Stored Procedures Werden in der Datenbank ausgeführt

27 Vor- und Nachteile Vorteile: Direkter und vollständiger Zugriff auf Daten Ausführung von beliebigem (nativem) SQL-Code Geringer Overhead Nachteile: Sehr aufwändig bei großen Datenbanken Duplikation von ähnlichen SQL-Statements Gefahr von Fehlern durch copy & paste Kein direkter Bezug zu Objektmodell im Programm Kompatibilitätsprobleme bei Verwendung von RDBMS spezifischem Code

28 ORM Objekt-Relationales Mapping Teil III

29 Persistente Datenspeicherung Programme arbeiten oftmals auf großen Datenbeständen Daten werden gelesen, geändert und gespeichert Persistenz = Verwaltung und Speicherung von Daten über die Laufzeit eines Programms hinaus

30 Layerstruktur objektorientierter Applikationen

31 Objektorientierte Programmierung vs. Relationale Datenbanken Objektorientierte Programmierung fordert Einheit von Code und Daten Relationale Datenbank (RDB) beinhaltet nur Verwaltung von Daten und Aufrechterhaltung ihrer Konsistenz Relationale Datenbanken sind nicht in der Lage komplette Objekte (als Summe ihrer Attribute und Methoden) zu verwalten RDB eignet sich nur zur Speicherung der Daten eines Objektes, also des Inhalts seiner Attribute Ansatz: Mapping, also das Abbilden von Objekten und Attributen in Datenbank-Tabellen bzw. deren Spalten

32 Persistenz-Layer Aufgabe: Bereitstellen von Methoden zum Erzeugen, Abfragen, Verändern und Löschen von Objekten einer Klassenhierarchie CRUD: Create, Retrieve, Update, Delete getter/setter-methoden zur Abfrage und Veränderung einzelner Attribute Schlüssel zur Flexibilität und Geschwindigkeit ist die Art und Weise, mit der die Struktur der Objekte auf die relationale Datenbank gemappt werden Umfasst auch Information über Vererbungshierarchie

33 Identifizierung von Objekten in Datenbanken Ein Objekt existiert laut dem Paradigma der Objekt- Orientierten Programmierung (OOP) nur einmal Jede Objekt-Orientierte Programmiersprache verwendet Referenzen auf Objekte, um diese zu verwalten: Objekt wird erzeugt, eine Referenz verwaltet, weitere Referenzen angelegt, Methoden werden benutzt und das Objekt wird am Ende seiner Existenz zerstört Gleichheit von Objekten wird durch Gleichheit der Referenz ausgedrückt Inhaltliche Gleichheit durch Gleichheit der Werte von Attributen

34 Identifizierung von Objekten in Datenbanken Beim Ablegen eines Objektes in einer relationalen Datenbank muss diese Form des Selbst aufrecht erhalten werden Objekt muss eindeutig von anderen Objekten unterscheidbar und identifizierbar sein Persistenz-Layer weisen Objekten eindeutige Identifikationsnummern, genannt object ids (OID) zu Anhand dieser Nummer kann das Objekt sich selbst, seine Daten und assoziierte Objekte identifizieren

35 Identifizierung von Objekten anhand einfacher Nummern Fortlaufende Nummerierung der Objekte Datenbank-Systeme liefern hierzu geeignete Hilfsmittel, z.b. SERIAL INTEGER in PostgreSQL oder AUTOINCREMENT in MySQL Eigenhändige Lösung: Anlegen einer Datenbanktabelle für Metadaten zur Verwaltung der OIDs und anderer Daten Vorteil: Gute Übertragbarkeit auf jedes Datenbank-System Nachteil: Zusätzlicher Aufwand zur Verwaltung der Metadaten Um Eindeutigkeit der OID zu gewährleisten, muss jeder Zugriff auf die Metadaten exklusiv erfolgen Locking der Tabelle oder einzelner Spalten nicht zu umgehen Ausbremsen des Systems durch Locking, wenn viele Clients in kurzer Folge neue OIDs anfordern

36 Identifizierung von Objekten mit zusammengesetzten Nummern Um Performanz-Einbußen beim konkurrierenden Zugriff auf Metadaten zu verringern, wird OID aus zwei Komponenten zusammengesetzt (high-low-ansatz) Zwei Komponenten: Sitzungszähler wird von Datenbank verwaltet und beim Starten der Applikation durch Datenbank initialisiert Zweite Komponente wird durch Applikation selbst vergeben Beispiel: 32-bit-Integers (z.b. unterste 10 Bit aus internem Zähler, restliche Bits aus Sitzungszähler) gewährleistet Eindeutigkeit bei Verringerung der Zugriffe auf Metadaten um Faktor 2 10 = 1024 Nachteil: Verschwenderischer Umgang mit OIDs (Überlauf!)

37 Identifizierung von Objekten mit globalen OIDs Einsatz (weltweit) verteilter Datenbanken erfordert andere Mittel OID dient hier nicht nur dem Auffinden der Daten in der Datenbank, sondern muss es der Applikation auch ermöglichen, Datenbank als solche zu identifizieren Ansatz: Text-OIDs, die Hostnamen des Datenbank- Servers, Namen der Datenbank, Namen der Tabelle und numerische OID enthalten Andere Möglichkeiten: URIs und URNs

38 Mapping: Eine Tabelle pro Hierarchie Alle Klassen einer Hierarchie sowie ihre Attribute werden in eine einzige Tabelle gemappt Vorteile: Hohe Performanz (nur eine Tabelle pro Anfrage) Einfache Implementierung Einfache Abfrage der Daten Nachträgliches Verändern der Klassen sowie polymorphe Abfragen von Objekten ebenfalls einfach Nachteile: Je nach verwendeter Klassenstruktur hoher Speicherverbrauch, da unnötig viele Spalten pro Klasse existieren Viele leere Datenbankfelder

39 Mapping: Eine Tabelle pro konkreter Klasse Pro Klasse eine Tabelle, die die kompletten Attribute dieser Klasse (inklusive der Attribute evtl. vorhandener abstrakter Oberklassen) enthält Vorteile: einfache Implementierung Speicherbedarf hält sich in Grenzen Nachteile: Polymorphe Abfragen von Objekten, besonders auf höherer Ebene der Klassenhierarchie, sind schwierig, da mehrere Tabellen nacheinander abgefragt werden müssen Veränderung von Attributen (Hinzufügen, Löschen) ist um so aufwändiger, je höher die Klasse in der Hierarchie angesiedelt ist

40 Mapping: Eine Tabelle pro Klasse Pro Klasse wird eine Tabelle erzeugt, die jedoch nur die in dieser Klasse definierten Attribute enthält, sowie die OID des Objektes Verknüpfung von Tabellen mit Hilfe der OID um die Gesamtdaten der Attribute eines Objektes zu erhalten Vorteile: Beste Unterstützung für polymorphe Abfragen Nachteile: Höchste Anforderungen an Implementierung Performanz kann je nach verwendeter Datenbank geringer als bei anderen Methoden sein, da die Verknüpfung evtl. mehrerer Tabellen einen hohen Verarbeitungsaufwand erzeugt

41 Mapping: Ein einfaches Beispiel

42 Vor- und Nachteile der Mapping- Verfahren Methode Geschwindigkeit Polymorphismus Speicherbedarf Hierarchie Konkrete Klasse Klasse - + +

43 Datenspeicherung mit Hibernate Teil IV

44 Was ist Hibernate? Englisch für Winterschlaf halten Persistenz- und Objekt-Relationales Mapping-Framework für Java (mittlerweile auch für.net) Speicherung von Objekten mit Attributen und Methoden in relationalen Datenbanken Zugriff auf Daten mit eigener Abfragesprache (HQL) Dadurch: Unabhängig von gewählter Datenbank (z.b. MySQL) Kompatibel zur Java Persistence API (JPA) Open-Source

45 Verbreitung und Verwendung Hibernate findet Verwendung in zehntausenden Java- Projekten weltweit Etwa angemeldete Entwickler in den Hibernate-Foren Anzahl täglicher Download: ca (Quelle: Wikipedia 2010, Hibernate Framework)

46 POJO Plain old Java Object = ein ganz normales Objekt Beispiel Die Klasse / das POJO Region : public class Region() { private String name; private int start; private int stop; } public int getstart () { return start; } public int getstop () { return stop; } public String getname () { return name; }

47 Primärschlüssel Jedes Objekt benötigt zur eindeutigen Identifikation in der Datenbank einen eindeutigen Primärschlüssel Beispiel Erweiterung der Klasse Region um ein neues Attribut _id public class Region() { private Long _id; } public long get_id() { return _id; } Alternativ hätte auch das Attribut name verwendet werden können Dann müsste Eindeutigkeit aber sichergestellt sein!

48 Datenbanktabelle Beispiel: Region Feld _id name start stop Typ int(11) char(255) int(8) int(8) 1 cg cg

49 Objekt-Relationales Mapping Erlaubt Abbildung der Objekt/Klassenstruktur auf ein relationales Datenbankschema Grundgerüst des Mappings in Hibernate mittels XML: <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" " <hibernate-mapping>... </hibernate-mapping> Alternativ möglich: Beschreibung des Mappings mit Hilfe von Annotationen

50 Objekt-Relationales Mapping Mapping für die Klasse Region auf die entsprechende Datenbanktabelle: <hibernate-mapping> <class name="de.cebitec.region" table="region">... </class> </hibernate-mapping>

51 Objekt-Relationales Mapping Mapping für die Klasse Region auf die entsprechende Datenbanktabelle: <hibernate-mapping> <class name="de.cebitec.region" table="region"> <property name="start" column="start"/> <property name="stop" column="stop"/> <property name="name" column="name"/> </class> </hibernate-mapping>

52 Objekt-Relationales Mapping Wichtig: Definition des Primärschlüssels mit der Anweisung diesen bei jedem neuen Objekt automatisch zu erhöhen <hibernate-mapping> <class name="de.cebitec.region" table="region"> <property name="start" column="start"/> <property name="stop" column="stop"/> <property name="name" column="name"/> <id column="_id" name="_id"> <generator class="increment"/> </id> </class> </hibernate-mapping>

53 Erweiterung der Klasse Region Jede Region kann in einer Art Eltern-Kind -Relation zu einer anderen Region stehen: public class Region() {... private Region parentregion;... public Region getparentregion () { return parentregion; } }

54 Datenbanktabelle Beispiel: Region erweitert um Eltern (Parent) - Region Benötigt zusätzliche Spalte mit Fremdschlüssel Feld _id name start stop parent_region_id Typ int(11) char(255) int(8) int(8) int(11) 1 cg cg null

55 Objekt-Relationales Mapping Fremdschlüssel zeigt auf Parent -Region <hibernate-mapping> <class name="abc.region" table="region"> <id column="_id" name="_id"> <generator class="native"/> </id> <property name="start" column="start"/> <property name="stop" column="stop"/> <property name="name" column="name"/> <many-to-one class="de.cebitec.region" column="parent_region_id" name="parent_region"/> </class> </hibernate-mapping>

56 Datenspeicherung und Abfrage Transaktionen Ausführung einer oder mehrerer Operationen (z.b. Holen und Änderung von Region-Objekten) innerhalb einer Transaktion ACID Eigenschaften von Transaktionen: Atomarität: Ganz oder gar nicht Konsistenz: konsistenter Datenzustand (z.b. Abbuchung von Konto und Einzahlung auf einem anderen) Isolation: Keine gegenseitige Beeinflussung von Transaktionen (z.b. Reisebuchung Sperrung eines Flugs während Auswahl des Hotels) Dauerhaftigkeit: Änderungen einer erfolgreich abgeschlossenen Transaktion sind dauerhaft (persistent)

57 Datenspeicherung und Abfrage Komponenten/Architektur von Hibernate: Session Repräsentiert Konversation zwischen Anwender (Anwendung) und Datenbank Kapselt Verbindung zur Datenbank (JDBC-Connection) SessionFactory Kennt alle Mappings für eine Datenbank Dient als Factory für Session-Objekte Optional: Zwischenspeicher für abgerufene Datenbankobjekte zur Steigerung der Performance (Caching)

58 Hibernate Konfiguration XML-Konfiguration einer SessionFactory <?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" " <hibernate-configuration> <session-factory> <property name="connection.driver_class"> com.mysql.jdbc.driver </property> <property name="dialect"> org.hibernate.dialect.mysqldialect </property>... <mapping resource="de/cebitec/region.hbm.xml"/> </session-factory> </hibernate-configuration>

59 Beispiel: Ablauf einer Datenbankabfrage Erstellung der Verbindung zur Datenbank (Initialisierung der SessionFactory mit Hibernate Konfiguration) Öffnen einer Session über die SessionFactory Beginn einer Transaktion Abfrage/Speicherung von Objekten Commit der Transaktion (Erst jetzt werden Änderung/ Objekte persistent!) Schließen der Session Später eventuell: Öffnen einer weiteren Session...

60 Beispiel: Holen aller Regions // Initialisierung der SessionFactory (hier nicht gezeigt) private static SessionFacotory sessionfactory =... // Methode zum Holen aller Region-Objekte (Wo ist hier die Transaktion?) public List<Region> getregions() { List<Region> regions = null; Session session = sessionfactory.opensession(); try { regions = session.createquery( "select region from Region as region" ).list(); } catch (Exception ex) { // Fehlerbehandlung } finally { session.close(); } return regions; }

61 Beispiel: Speicherung einer Region // Methode zur Erstellung und Speicherung eines Region-Objekts public Region createnewregion(string name, int start, int stop) { Region region = new Region(); region.setname(name); region.setstart(start); region.setstop(stop); } Session session = sessionfactory.opensession(); Transaction tx = null; try { tx = session.begintransaction(); session.save(region); tx.commit(); } catch (Exception ex) { tx.rollback(); // Rollback aller Änderungen! return null; // besser: Ausnahme werfen! } finally { session.close(); } return region;

62 Literatur C. J. Date und H. Darwen SQL - Der Standard. Addison-Wesley, 1997 S.W. Ambler The Design of a Robust Persistence Layer for Relational Databases. S.W. Ambler Mapping Objects to Relational Databases. S.W. Ambler Building Object Applications that work. Cambridge University Press, C. Bauer, G. King (2005) Hibernate in Action. Manning Publications Co. Hibernate - JBoss Community (2010)

63 Vielen Dank für Eure Aufmerksamkeit

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo. Mengenvergleiche: Mehr Möglichkeiten als der in-operator bietet der θany und der θall-operator, also der Vergleich mit irgendeinem oder jedem Tupel der Unteranfrage. Alle Konten außer das, mit dem größten

Mehr

Workshop Java Webentwicklung Einführung in Hibernate. Ulrich Stärk

Workshop Java Webentwicklung Einführung in Hibernate. Ulrich Stärk Workshop Java Webentwicklung Einführung in Hibernate Ulrich Stärk Ablauf Montag bis Donnerstag 09:00 Uhr s.t. Beginn, bis ca. 17:00 Uhr 1 Stunde Mittagspause Donnerstag Experiment Aufzeichnung der Programmiertätigkeit

Mehr

Willkommen. Datenbanken und Anbindung

Willkommen. Datenbanken und Anbindung Willkommen Datenbanken und Anbindung Welche stehen zur Wahl? MySQL Sehr weit verbreitetes DBS (YT, FB, Twitter) Open-Source und Enterprise-Version Libs in C/C++ und Java verfügbar Grundsätzlich ist ein

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

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

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

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

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

Kapitel 14. Objekt-relationales Mapping (ORM) mit Hibernate bzw. Java Persistance API (JPA) Prof. Dr. Wolfgang Weber Vorlesung Datenbanken Kapitel 14 Objekt-relationales Mapping (ORM) mit Hibernate bzw. Java Persistance API (JPA) 1 Wozu Objekt-relationales Mapping? - Problematik - Business-Schicht OO-Klassen Unvereinbarkeit der Paradigmen

Mehr

Hibernate Das Praxisbuch für Entwickler

Hibernate Das Praxisbuch für Entwickler Sebastian Hennebrüder 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Hibernate Das Praxisbuch für Entwickler Galileo

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

Tag 4 Inhaltsverzeichnis

Tag 4 Inhaltsverzeichnis Tag 4 Inhaltsverzeichnis Normalformen Problem Formen (1-4) Weitere Formen Transaktionen Synchronisationsprobleme Überblick Autocommit Locking Savepoints Isolation levels Übungen RDB 4-1 Normalformen Problematik

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

Datenbanken: Datenintegrität. www.informatikzentrale.de

Datenbanken: Datenintegrität. www.informatikzentrale.de Datenbanken: Datenintegrität Definition "Datenkonsistenz" "in der Datenbankorganisation (...) die Korrektheit der gespeicherten Daten im Sinn einer widerspruchsfreien und vollständigen Abbildung der relevanten

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

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

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

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

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

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

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

XAMPP-Systeme. Teil 3: My SQL. PGP II/05 MySQL XAMPP-Systeme Teil 3: My SQL Daten Eine Wesenseigenschaft von Menschen ist es, Informationen, in welcher Form sie auch immer auftreten, zu ordnen, zu klassifizieren und in strukturierter Form abzulegen.

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

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

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

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 17: 3-Schichten-Architektur 2

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 17: 3-Schichten-Architektur 2 Universität Osnabrück 1 3 - Objektorientierte Programmierung in Java Zur Erinnerung: Aufteilung der Schichten GUI Vorlesung 17: 3-Schichten-Architektur 2 Fachkonzept Fachkonzept - Datenhaltung Datenhaltung

Mehr

Persistenz. Workplace Solutions. Persistenz. ÿ RDBMS und OO ÿ Strukturkonflikt ÿ Object-RDBMS-Mapping. Abbildung Objekte auf RDBMS

Persistenz. Workplace Solutions. Persistenz. ÿ RDBMS und OO ÿ Strukturkonflikt ÿ Object-RDBMS-Mapping. Abbildung Objekte auf RDBMS Persistenz ÿ RDBMS und OO ÿ Strukturkonflikt ÿ Object-RDBMS-Mapping APCON Abbildung Objekte auf RDBMS Der Strukturkonflikt Basisklassen und Domänen Klassen zur Kapselung der relationalen Datenbank Abbildung

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

7. Übung - Datenbanken

7. Übung - Datenbanken 7. Übung - Datenbanken Informatik I für Verkehrsingenieure Aufgaben inkl. Beispiellösungen 1. Aufgabe: DBS a Was ist die Kernaufgabe von Datenbanksystemen? b Beschreiben Sie kurz die Abstraktionsebenen

Mehr

Datenbankanwendungen (JDBC)

Datenbankanwendungen (JDBC) Datenbankanwendungen (JDBC) Hierarchie: Connection Transaction Statement Connection Aufbau (klassisch): Registrierung des JDBC Driver beim DriverManager: Class.forName(JDBC Driver); Eigentlicher Verbindungsaufbau

Mehr

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

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004) Nachtrag: Farben Farbblindheit (Light und Bartlein 2004) 1 Vorgeschlagene Farbskalen (Light and Bartlein 2004) Farbkodierung metrisch skalierter Daten Unterscheide: 1. Sequential Data (ohne Betonung der

Mehr

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

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen 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

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

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP Datenbanktechnologie mit praktischen Übungen in MySQL und PHP Übung, Sommersemester 2013 29. April 2013 - MySQL 2 Sebastian Cuy sebastian.cuy@uni-koeln.de Aufgaben Anmerkungen Best practice: SQL Befehle

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

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

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten Einführung in SQL Die Sprache SQL (Structured Query Language) ist eine Programmiersprache für relationale Datenbanksysteme, die auf dem ANSI-SQL-Standard beruht. SQL wird heute von fast jedem Datenbanksystem

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

In die Zeilen würden die Daten einer Adresse geschrieben werden. Das Ganze könnte in etwa folgendermaßen aussehen:

In die Zeilen würden die Daten einer Adresse geschrieben werden. Das Ganze könnte in etwa folgendermaßen aussehen: 1 Einführung in Datenbanksysteme Fast jeder kennt Excel und hat damit in seinem Leben schon einmal gearbeitet. In Excel gibt es Arbeitsblätter, die aus vielen Zellen bestehen, in die man verschiedene Werte

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

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

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

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler Programmieren für mobile Endgeräte SS 2013/2014 Programmieren für mobile Endgeräte 2 SQLite als Datenbank-Managementsystem (DBMS) wenige 100 KB schlanke Programmbibliothek Aktuelle Version: 3.8.1 Für die

Mehr

Programmieren II. Objekt-relationales Mapping. Vorlesung 12. Handout S. 1. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester 2009

Programmieren II. Objekt-relationales Mapping. Vorlesung 12. Handout S. 1. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester 2009 Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2009 1 / 35 2 / 35 Mit JDBC kann Java sich mit relationalen Datenbanken verbinden. Hierbei entsprechen jeder Datensatz einer Zeile

Mehr

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

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software SQL Tutorial SQL - Tutorial SS 06 Hubert Baumgartner INSO - Industrial Software Institut für Rechnergestützte Automation Fakultät für Informatik Technische Universität Wien Inhalt des Tutorials 1 2 3 4

Mehr

Carl-Engler-Schule Karlsruhe Datenbank 1 (5)

Carl-Engler-Schule Karlsruhe Datenbank 1 (5) Carl-Engler-Schule Karlsruhe Datenbank 1 (5) Informationen zur Datenbank 1. Definition 1.1 Datenbank-Basis Eine Datenbank-Basis ist eine Sammlung von Informationen über Objekte (z.b Musikstücke, Einwohner,

Mehr

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

Kapitel 10. JDBC und SQLJ. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken 1 Kapitel 10 JDBC und SQLJ 1 JDBC und SQLJ Bisher: Einbettung von SQL (statisch bzw. dynamisch) in C, C++, COBOL, ADA (embedded SQL) bzw. prozedurale Erweiterungen für SQL in Oracle (PL/SQL) Was ist mit

Mehr

Tag 4 Inhaltsverzeichnis

Tag 4 Inhaltsverzeichnis Tag 4 Inhaltsverzeichnis Normalformen Problem Formen (1-4) Weitere Formen Transaktionen Synchronisationsprobleme Überblick Autocommit Locking Savepoints Isolation levels Übungen RDB 4-1 Normalformen Problematik

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

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

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

3. Das Relationale Datenmodell

3. Das Relationale Datenmodell 3. Das Relationale Datenmodell Das Relationale Datenmodell geht zurück auf Codd (1970): E. F. Codd: A Relational Model of Data for Large Shared Data Banks. Comm. of the ACM 13(6): 377-387(1970) DBMS wie

Mehr

OR-Mapping. WS2008/2009 DBIS/Dr. Karsten Tolle

OR-Mapping. WS2008/2009 DBIS/Dr. Karsten Tolle OR-Mapping Zwei Paradigmen treffen aufeinander Gegensätze OO vs. Relational: Stichwort: O/R Impedance Mismatch Person Tabellen mit Schlüssel und Fremdschlusselbeziehungen. Abt-Nr. beschäftigt Pk-Nr Name

Mehr

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

Relationales Modell: SQL-DDL. SQL als Definitionssprache. 7. Datenbankdefinitionssprachen. Anforderungen an eine relationale DDL Relationales Modell: SQLDDL SQL als Definitionssprache SQLDDL umfaßt alle Klauseln von SQL, die mit Definition von Typen Wertebereichen Relationenschemata Integritätsbedingungen zu tun haben Externe Ebene

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

SQL (Structured Query Language) Schemata Datentypen

SQL (Structured Query Language) Schemata Datentypen 2 SQL Sprachelemente Grundlegende Sprachelemente von SQL. 2.1 Übersicht Themen des Kapitels SQL Sprachelemente Themen des Kapitels SQL (Structured Query Language) Schemata Datentypen Im Kapitel SQL Sprachelemente

Mehr

OM Datenbanken. OM Datenbanken. 8.1 Was ist ein Datenbanksystem? Motivation

OM Datenbanken. OM Datenbanken. 8.1 Was ist ein Datenbanksystem? Motivation 1 Inhalt: Relationale Datenbanken 8.1 Was ist ein Datenbanksystem? 8.2 Relationale Datenbanksysteme 8.3 Abbildung des objektorientierten Modells auf Tabellen 2 8.1 Was ist ein Datenbanksystem? Motivation

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

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

Inhaltsverzeichnis. jetzt lerne ich

Inhaltsverzeichnis. jetzt lerne ich Inhaltsverzeichnis jetzt lerne ich Einführung 15 1 Erste Schritte 21 1.1 Datenbanken und Datenbank-Managementsysteme 21 1.2 Zugriff auf Datenbanken 22 1.3 Was der Großvater noch wusste... 22 1.4 Einordnung

Mehr

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

Seminar 2. SQL - DML(Data Manipulation Language) und. DDL(Data Definition Language) Befehle. Seminar 2 SQL - DML(Data Manipulation Language) und DDL(Data Definition Language) Befehle. DML Befehle Aggregatfunktionen - werden auf eine Menge von Tupeln angewendet - Verdichtung einzelner Tupeln yu

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

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

Vorlesung Informatik II

Vorlesung Informatik II Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 08. Exkurs: Datenbanken 1 Motivation Datenbanksysteme

Mehr

MySQL Installation. AnPr

MySQL Installation. AnPr Name Klasse Datum 1 Allgemeiner Aufbau Relationale Datenbank Management Systeme (RDBMS) werden im Regelfall als Service installiert. Der Zugriff kann über mehrere Kanäle durchgeführt werden, wobei im Regelfall

Mehr

5.3 Datenänderung/-zugriff mit SQL (DML)

5.3 Datenänderung/-zugriff mit SQL (DML) 5.3 Datenänderung/-zugriff mit SQL (DML) Hinweis: - DML-Anweisungen sind mengenorientiert - Mit einer Anweisungen kann mehr als ein Tupel eingefügt, geändert, gelöscht oder gelesen werden Benutzungs- und

Mehr

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

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

Mehr

Innovator 11 excellence. DDL importieren. Data-Definition-Language-Dateien in Datenbankschema importieren. HowTo. www.mid.de

Innovator 11 excellence. DDL importieren. Data-Definition-Language-Dateien in Datenbankschema importieren. HowTo. www.mid.de Innovator 11 excellence DDL importieren Data-Definition-Language-Dateien in Datenbankschema importieren HowTo www.mid.de Zweck In Innovator Data excellence können Sie mit dem DDL-Import Ihr physisches

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

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

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

Sructred Query Language

Sructred Query Language Sructred Query Language Michael Dienert 11. November 2010 Inhaltsverzeichnis 1 Ein kurzer Versionsüberblick 1 2 SQL-1 mit einigen Erweiterungen aus SQL-92 2 3 Eine Sprache zur Beschreibung anderer Sprachen

Mehr

11 Anwendungsprogrammierung

11 Anwendungsprogrammierung 11 11 11.1 Programmiersprachenanbindung 11.2 11.3 183 11 Programmiersprachenanbindung Programmiersprachenanbindung Kopplungsarten: prozedurale oder CALL-Schnittstellen (call level interface) Beispiele:

Mehr

105.3 SQL-Datenverwaltung

105.3 SQL-Datenverwaltung LPI-Zertifizierung 105.3 SQL-Datenverwaltung Copyright ( ) 2009 by Dr. W. Kicherer. This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Germany License. To view a

Mehr

Datenbank und Tabelle mit SQL erstellen

Datenbank und Tabelle mit SQL erstellen Datenbank und Tabelle mit SQL erstellen 1) Übung stat Mit dem folgenden Befehlen legt man die Datenbank stat an und in dieser die Tabelle data1 : CREATE DATABASE stat; USE stat; CREATE TABLE data1 ( `id`

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

Vielen Dank an Dennis Riehle für die Bereitstellung dieser Folien

Vielen Dank an Dennis Riehle für die Bereitstellung dieser Folien Vielen Dank an Dennis Riehle für die Bereitstellung dieser Folien 1.1 Definition Datenbank Ein Datenbanksystem (DBS) ist ein System zur elektronischen Datenverwaltung. Die wesentliche Aufgabe eines DBS

Mehr

Praktikum Datenbanksysteme

Praktikum Datenbanksysteme Praktikum Datenbanksysteme Herbstsemester 2012 Dr. Andreas Geppert Platform Architecture Technology Infrastructure Services Credit Suisse geppert@acm.org Herbstsemester 2012 Slide 1 Themenübersicht konzeptueller

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

Datenbanken. Seminararbeit. Einführung in das wissenschaftliche Arbeiten

Datenbanken. Seminararbeit. Einführung in das wissenschaftliche Arbeiten Seminararbeit vorgelegt von: Gutachter: Studienbereich: Christian Lechner Dr. Georg Moser Informatik Datum: 6. Juni 2013 Inhaltsverzeichnis Inhaltsverzeichnis 1 Einführung in Datenbanken 1 1.1 Motivation....................................

Mehr

Web Technologien Klassische Datenbanken am Beispiel von MySQL

Web Technologien Klassische Datenbanken am Beispiel von MySQL Web Technologien Klassische Datenbanken am Beispiel von MySQL Univ.-Prof. Dr.-Ing. Wolfgang Maass Chair in Information and Service Systems Department of Law and Economics WS 2011/2012 Wednesdays, 8:00

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

Software-Engineering Einführung

Software-Engineering Einführung Software-Engineering Einführung 7. Übung (04.12.2014) Dr. Gergely Varró, gergely.varro@es.tu-darmstadt.de Erhan Leblebici, erhan.leblebici@es.tu-darmstadt.de Tel.+49 6151 16 4388 ES Real-Time Systems Lab

Mehr

Im Fall einer Personaldatenbank würde eine Relation beispielsweise wie folgt aussehen:

Im Fall einer Personaldatenbank würde eine Relation beispielsweise wie folgt aussehen: Grundwissen zu relationalen Datenbanken Die Funktion einer relationalen Dankbank besteht in der elektronischen Verwaltung von Daten in Computersystemen. Die Basis für relationale Datenbanken bildet das

Mehr

Übersicht über Datenbanken

Übersicht über Datenbanken Übersicht über Datenbanken Vergleich zwischen normaler Datenorganisation und Datenbanken Definition einer Datenbank Beispiel (inkl. Zugriff) Der Datenbankadministrator Relationale Datenbanken Transaktionen

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

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

MySQL, phpmyadmin & SQL. Kurzübersicht

MySQL, phpmyadmin & SQL. Kurzübersicht MySQL, phpmyadmin & SQL Kurzübersicht Referenzen MySQL Documentation: http://dev.mysql.com/doc PHP 5 / MySQL5. Studienausgabe. Praxisbuch und Referenz (Kannengießer & Kannengießer) 2 Datenbank anlegen

Mehr