6 Implementierung komplexer Systeme. 6.2 Datenbank-Anbindung

Ähnliche Dokumente
OM Datenbanken. OM Datenbanken. 8.1 Was ist ein Datenbanksystem? Motivation

10. Datenbank Design 1

Entwurf des Datenbanksystems (DBS)

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

Vorlesung Datenbanken II SS 2006

Kapitel 3: Datenbanksysteme

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

Kapitel 3: Datenbanksysteme

Objektrelationale Datenbanken

Datenbanken. Zusammenfassung. Datenbanksysteme

Kapitel 6: Das E/R-Modell

Effizienzsteigerung durch Mapping- Tools bei der Integration von RDBMS in Java-Anwendungen

Lehrbuch der Objektmodellierung

10. Datenbank- Design

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

Vorlesung Informatik II

Praxisbuch Objektorientierung

Software Engineering. 8. Persistenz

Geoinformation Abbildung auf Tabellen

Gliederung und Einordnung

Datenmanagement in Android-Apps. 16. Mai 2013

Logischer Entwurf von Datenbanken

XML in der Oracle Datenbank

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

Datenbanken. Seminararbeit. Einführung in das wissenschaftliche Arbeiten

Objektorientierte Datenbanken

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

Objektorientierte Programmierung

Vorlesung. Grundlagen betrieblicher Informationssysteme. Prof. Dr. Hans Czap. Lehrstuhl für Wirtschaftsinformatik I

Objektrelationale Datenbanken

Daten Bank. 6. Vorlesung

Kapitel 5: Das E/R-Modell

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

Objektorientierter Entwurf (OOD) Übersicht

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

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Inhaltsverzeichnis Vorwort zur vierten Auflage Vorwort zur dritten Auflage Vorwort zur zweiten Auflage Vorwort zur ersten Auflage Hinweise zur CD

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

Kapitel 2: Das Relationale Modell

Medizininformatik Software Engineering

Vorlesungen. Studenten. hören. Grundzüge. Fichte Glaube und Wissen Jonas

Folien zum Textbuch. Kapitel 2: Planung, Entwicklung und Betrieb von IS. Teil 3: Modellierung von betrieblichen Informationssystemen

Grundlagen des relationalen l Modells

Datenbanken Datenbanken 1 Belegnummer Belegnummer

Konzeptueller Entwurf

Wiederholung VU Datenmodellierung

Datenbanken Unit 9: OLAP, OLTP und objektrelationale Datenbanken

3. Das Relationale Datenmodell

Theorie zur Übung 8 Datenbanken

Kapitel 3: Datenbanksysteme

Kapitel 2: Das Relationale Modell

7. Datenbankdefinitionssprachen

Objektorientierte Datenbanken

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

Kapitel 1: Einführung 1.1 Datenbanken?

Eine neue Datenbank erstellen

Software-Engineering Einführung

4. Objektrelationales Typsystem Kollektionstypen. Nested Table

4. Objektrelationales Mapping Grundlagen der Programmierung II (Java)

Relationale Datenbanken in der Praxis

Objektrelationale und erweiterbare Datenbanksysteme

Kap. 9 Datenmodellierung und verwaltung

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

Datenbanken Grundlagen und Design

- Datenbanken / Web-Architekturen -

Kapitel 3: Datenbanksysteme

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

Uni Duisburg-Essen Fachgebiet Informationssysteme Prof. Dr. N. Fuhr

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

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

Hands-on-Workshop Datenmodellierung mit dem neuen Innovator for Database Architects. MID Insight Nürnberg,

Einteilung von Datenbanken

Integritätsbedingungen für komplexe Objekte in objektrelationalen Datenbanksystemen

Datenbanken Unit 9: OLAP, OLTP und objektrelationale Datenbanken

Webbasierte Informationssysteme

Objektbasierte und objektorientierte Datenbanken

zu E 1 der Form (0, 1) erfüllen.

Relationale Datenbanken - Theorie und Praxis

Objektorientierte Programmierung (OOP)

Die Anweisung create table

Strukturierte Objekttypen

Übung 01 Tabellen erstellen

NoSQL mit Postgres 15. Juni 2015

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

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

Vorlesung: Relationale Datenbanksysteme

SQL/Datenbanken Klausur: Basics

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

Schichtenarchitekturen und ihre Auswirkungen auf die objektorientierte Modellierung

7. XML-Datenbanksysteme und SQL/XML

Kapitel 8: Datenbankanbindung. SoPra 2008 Kap. 8: Datenbankanbindung (1/40)

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Objektmodellierung. Grundkurs C++

7. Programmierungs- Phase Software Engineering (FB EIT) Wintersemester 2007 / 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik

Garten - Daten Bank. - survival pack -

Rückblick: Datenbankentwurf

Datenorganisation: (Daten)Datei versus Datenbank

FACHHOCHSCHULE MANNHEIM

Wie definieren wir das Relationen-

Objektorientierte PL/SQL-Entwicklung Ein Erfahrungsbericht aus Sicht von JAVA-Entwicklern

Transkript:

6 Implementierung komplexer Systeme 6.2 Datenbank-Anbindung Analyse Entwurf Implementierung Test, Integration Wartung Literatur: Balzert LE 24-26, 31 Ambler Kap. 10 Einsatz von Datenbanksystemen Persistente Daten Dateien Programmiersprachenspezifische Mechanismen Datenbanksysteme» relational» objektorientiert» andere, z.b. hierarchisch Anwendungsentwurf entkoppeln von Wahl des Persistenzmechanismus Altsysteme meist relationale oder hierarchische Datenbank Anbindung an moderne Anwendungsprogramme Seite 1

Vergleich RDBS - ODBS relationales DBS Wertidentität Schlüssel und Fremdschlüssel elementare Attributtypen sichtbare Attribute DB-Sprache (SQL) grundsätzlich separat von Programmiersprache Serverorientiert Persistente Daten objektorientiertes DBS Objektidentität komplexe Attributtypen Kapselung (nicht für lesende Zugriffe) Enge Integration zwischen DB-Sprache und Progr.spr. (PL-ODL) Clientorientiert Persistente und transiente Objekte Objektidentität Nachteile der Wertidentifikation von Objekten (Tupeln): Schlüsselattribute können Anwendungssemantik tragen» z.b. Kurzname in Firma : Namenswechsel einer Firma? Wertgleichheit (der Attribute) und Identität nicht unterscheidbar» z.b. grafische Objekte in einem Zeichenprogramm: Objekt 1: Kreis, Farbe blau, Koordinaten (1,1) Objekt 2: Kreis, Farbe rot, Koordinaten (2,1) Ändere Farbe von Objekt 2 in blau Verschiebe Objekt 2 um 1 nach links Verschiedene Objekte mit gleichen Attributwerten Vorteile einer reinen Objektidientifikation: Semantische Klarheit "Opaker" Typ verhindert versehentliche oder fahrlässige Manipulation "Smart Pointers" (Objekt-Caching) Seite 2

Objektorientiertes Design und RDBS Objektorientiertes Design (OOD) wegen Flexibilität und Zukunftssicherheit Relationales Datenbanksystem (RDBS) wegen vorhandener Altsysteme zur Vermeidung von Lizenzkosten und Schulungsaufwand Abbildung von OOD auf RDBS: Abbildung von Klassen auf Tabellen Behandlung von Attributen mit komplexen Typen Abbildung von Assoziationen und Aggregationen Abbildung von Vererbung Softwarehilfsmittel: "Objektrelationale Middleware" Abbildung von Klassen auf Tabellen In der Regel wird jede Klasse auf eine Tabelle abgebildet. Objektidentität wird durch eine zusätzliche Spalte aller Tabellen (surrogate) realisiert. Person Name Adresse Person PersonOID Name Adresse Primärschlüssel: PersonOID create table Person (PersonOID ID not null, name char(40) not null, adresse char(60) primary key (PersonOID)) Seite 3

Optimierungen Häufige Zugriffe über bestimmte Attribute als Sekundärschlüssel create secondary index Person-name on Person (name) Häufung von Zugriffen bei wenigen Objekten (z.b. Stammkunden): horizontale Unterteilung Stammkunden PersonOID Name Adresse Person PersonOID Name Adresse Häufung von Zugriffen bei bestimmten Attributen vertikale Unterteilung Person1 PersonOID Name Person2 PersonOID Adresse Attribute mit komplexen Typen Beispiel Attribut Adresse von Klasse Firma (in ODL): attribute struct AdresseT <String Straße, Integer HausNr, Integer PLZ, String Ort> Adresse; Neue Attributnamen: String AdresseStraße Integer AdresseHausNr Integer AdressePLZ String AdresseOrt Alternative: eigene Tabelle Adressen Eigene Tabellen nötig für Listentypen (ohne feste Grenzen) Seite 4

Abbildung von Assoziationen/Aggregationen 1:1- und 1:m-Assoziationen: OID-Fremdschlüsselattribut in der 'm-klasse' Firma ist Mitarbeiter von 0..1 0..* Kunde Kunde Funktion Umsatz FirmaOID Separate Tabelle Mitarbeiter KundeOID FirmaOID m:n-assoziationen: eigene Tabelle Behandlung von Aggregationen analog Abbildung von Vererbung Vier Ansätze: Je eine Tabelle für Ober- und Unterklassen Oberklassen-Attribute in Unterklassen aufnehmen Unterklassen-Attribute in Oberklassen aufnehmen Vererbungsbeziehung als eigene Tabelle» nur selten, z.b. Mehrfachvererbung mit überlappenden Oberklassen Beispiel: Person Name Adresse Kunde Funktion Umsatz Dozent Honorar Seite 5

Beispiel: Abbildung von Vererbung Je eine Tabelle für Ober- und Unterklasse: Person PersonOID Name Adresse 11 22 Huber Schmidt München Dresden Kunde PersonOID Funktion Umsatz 11 Entwickler 500 Art Kunde Dozent Dozent PersonOID Honorar 22 2000 Einfach und systematisch Gut geeignet für Mehrfachvererbung (aus disjunkten Klassen) Nachteil: Umständliche Navigation für bestimmte Attributwerte Beispiel: Abbildung von Vererbung Oberklassenattribute in Unterklassen aufnehmen ("many subclass approach"): Kunde PersonOID Name Adresse Funktion Umsatz 11 Huber München Entwickler 500 Dozent PersonOID Name Adresse 22 Schmidt Dresden Honorar 2000 Einfacher Zugriff auf Attribute Besonders günstig für abstrakte Klassen Einschränkungen z.b. Name als secondary index für alle Personen nicht möglich Seite 6

Beispiel: Abbildung von Vererbung Unterklassenattribute in Oberklassen aufnehmen ("one superclass approach"): Person PersonOID Art Name Adresse Funktion Umsatz 11 22 Kunde Dozent Huber Schmidt München Dresden Entwickler null 500 null Honorar null 2000 Schlecht strukturiert (keine "3. Normalform") Wenig speichereffizient (null-einträge) Nur geeignet bei wenigen Unterklassen mit wenigen Attributen Objekt-Relationale Middleware Objekte des Anwendungskerns O/R-Middleware RDBMS Abbildungsregeln (Typen für Attribute, Behandlung von Vererbung etc.) Zweiseitiger Entkopplungsmechanismus: Anwendungskern unabhängig von Wahl des Datenbanksystems Middleware einheitlich für alle speziellen Anwendungsklassen Realisierungsmöglichkeiten (Beispiele): Generierung einer anwendungsspezifischen Anpassungsschicht Universelle Schnittstellen (z.b. mit Java-Klasse "Object") Seite 7

Objekt-Relationale Middleware: Details Objekte des Anwendungskerns Laufzeit- Unterstützung Objekt-Cache Repository für anwendungsspezifische Abbildungsregeln RDBMS O/R- Middleware Typische Funktionen eines Middleware-Systems: Generierung von Abbildungsregeln aus (Java-)Klassendefinitionen Interaktive Verfeinerung der Abbildungsregeln Dynamische Modifikation der Abbildungsregeln über (Java-)API Generierung von SQL-DDL Schema aus Abbildungsregeln Generierung von Abbildungsregeln aus SQL-DDL-Schema Generierung von Klassenskeletten aus Abbildungsregeln Implementierungsalternativen Objektrelationale Middleware leistungsfähige und flexible Lösung teuer, komplex, Performanceverlust oft Teil der Infrastruktur (z.b. Application Server, EJB) Standardisierte DBMS-Schnittstellen z.b. SQL-Einbindung in Programmiersprache (Java: JDBC) Festlegung auf relationale Datenbanken mit passender Software Proprietäre DBMS-Schnittstellen unflexibelste Lösung Unter Umständen wegen Performance-Gewinnen sinnvoll Professioneller Softwareentwurf: Abwägen zwischen Alternativen Evtl. Entscheidung mit Experimenten absichern (experimentelles Prototyping) Seite 8