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



Ähnliche Dokumente
Im Original veränderbare Word-Dateien

ACCESS das Datenbankprogramm. (Einführung) DI (FH) Levent Öztürk

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

Datenmanagement in Android-Apps. 16. Mai 2013

4. BEZIEHUNGEN ZWISCHEN TABELLEN

Fachbereich Wirtschaftswissenschaften Campus Sankt Augustin

Probeklausur im Modul Informationstechnik 1, WS 2003/04. Studiengang IWD 1. Semester Seite 1 von 5

ABTEILUNGS- ABTEILUNGS- LEITER NAME

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

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

Allgemeines zu Datenbanken

7. Übung - Datenbanken

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

MdtTax Programm. Programm Dokumentation. Datenbank Schnittstelle. Das Hauptmenü. Die Bedienung des Programms geht über das Hauptmenü.

Objektrelationale Datenbanken

SQL (Structured Query Language) Schemata Datentypen

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

Beispiel des Zusammenführens der APV- Tabellen Stammdaten und Verlaufsdaten mithilfe von Access

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

Testen mit JUnit. Motivation

Objektorientierte Programmierung

3. Übung. Einführung MS Access. TU Dresden - Institut für Bauinformatik Folie-Nr.: 1

MS Access 2010 Kompakt

1. Zusammenfassung der letzten Vorlesung

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

OPERATIONEN AUF EINER DATENBANK

Prozentrechnung. Wir können nun eine Formel für die Berechnung des Prozentwertes aufstellen:

4 Grundlagen der Datenbankentwicklung

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Objektorientierter Entwurf (OOD) Übersicht

DB2 Codepage Umstellung

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

Relationale Datenbanken in der Praxis

Zahlen auf einen Blick

Personen. Anlegen einer neuen Person

Datenbanken Microsoft Access 2010

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

SQL structured query language

Kapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023

Dokumentation. Schnittstelle IKISS Bayerischer Behördenwegweiser. Stand:

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

Errata-Liste zum Kurs: Einführung in XML (2. Auflage)

Handbuch ECDL 2003 Basic Modul 5: Datenbank Access starten und neue Datenbank anlegen

GI-Technologien zur Umsetzung der EU-Wasserrahmenrichtlinie (WRRL): Wissensbasen. Teil 1: Einführung: Wissensbasis und Ontologie.

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

1. Einführung. 2. Alternativen zu eigenen Auswertungen. 3. Erstellen eigener Tabellen-Auswertungen

White Paper. Konfiguration und Verwendung des Auditlogs Winter Release

CAD Warehouse- Verbindungen. Plattformspezifische Darstellung

Professionelle Seminare im Bereich MS-Office

Objektrelationale und erweiterbare Datenbanksysteme

Artenkataster. Hinweise zur Datenbereitstellung. Freie und Hansestadt Hamburg. IT Solutions GmbH. V e r s i o n

Hochschule Ravensburg-Weingarten. Technik Wirtschaft Sozialwesen. Projektarbeit

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

Abschnitt 12: Strukturierung von Java-Programmen: Packages

Aufgabe 1: [Logische Modellierung]

Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen.

Kurzeinführung Excel2App. Version 1.0.0

Anzeige von eingescannten Rechnungen

Übungen zur Vorlesung. Mobile und Verteilte Datenbanken. WS 2008/2009 Blatt 6. Lösung

Ein Schlüssel ist eine Menge von Attributen (also eines oder mehrere), die eine Datenzeile (Tupel) einer Tabelle eindeutig identifiziert

Kapitel 8: Physischer Datenbankentwurf

Nützliche Tipps für Einsteiger

Text Formatierung in Excel

Das SIARD Format und die zugehörige Tool-Landschaft

1. Speicherbausteine JK-RS-Master-Slave-Flip-Flop

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Datenbanksysteme I

Übungsblatt 4. Aufgabe 7: Datensicht Fachkonzept (Klausur SS 2002, 1. Termin)

Hilfedatei der Oden$-Börse Stand Juni 2014

MS Excel 2010 Kompakt

Arbeitsgruppen innerhalb der Website FINSOZ e.v.

Aktualisierung zum Buch Windows und PostgreSQL

Einführung in die Programmierung (EPR)

Programmieren I. Kapitel 15. Ein und Ausgabe

Aufgaben zu XPath und XQuery

IPETRONIK TESTdrive SDK V02.00

ER-Diagramme. eine Modellierung. Beziehungen der Elternschaft:

Einführung in Datenbanken

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

So gehts Schritt-für-Schritt-Anleitung

ecaros2 - Accountmanager

TIF2ELO Maskeneditor Handbuch

Access Grundlagen für Anwender. Andrea Weikert 1. Ausgabe, 1. Aktualisierung, Juli inkl. zusätzlichem Übungsanhang ACC2010-UA

Aufgaben zur fachwissenschaftlichen Prüfung Modul 3 Daten erfassen, ordnen, verarbeiten und austauschen: Schwerpunkt Datenbanken

Markus Kühne www-itu9-1.de Seite Datenbank / Access

eurovat Magento Extension Magento - Extension Extension V1.4.2 Dokumentation Version 1.0 SNM-Portal UG (haftungsbeschränkt) & Co. KG Vorherstraße 17

1. EINLEITUNG 2. GLOBALE GRUPPEN Globale Gruppen anlegen

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 18

IINFO Storyboard

Bedienungsanleitung. HABA-Produktgenerator. für unsere Kunden und Interessenten

Einwilligungserklärung

9. Einführung in Datenbanken

Herzlich willkommen zum Kurs "MS Word 2003 Professional"

Handbuch ECDL 2003 Professional Modul 2: Tabellenkalkulation Arbeiten mit Pivot-Tabellen

Screening for Illustrator. Benutzerhandbuch

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

Die Entwicklung eines Glossars (oder eines kontrollierten Vokabulars) für ein Unternehmen geht üblicherweise in 3 Schritten vor sich:

Transkript:

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 der benutzt Beziehung der erbt-beziehung Datenbanken als Dienstleistung 1 Apcon, 2000

Speicherbare Objekte DBTool store_on (Stroable s, File f) retrieve_from (File f) : Storable File Storable store (File on) retrieve (File from) Strasse Ort PLZ Gehalt Saldo Zinssatz... als Objektdiagramm ein : Peter Schmitz : : 5000 : Speicherung in einer Datei ein von 1: 2:... eine Straße: Buttermarkt 4 PLZ: 50667 Ort: Köln ein Nr: 50198700 Zinssatz: 4.3 Saldo: 5100.0 ein Nr: 50798734 Zinssatz: 3.1 Saldo: 45.60 #1( Peter Schmitz, #2( Buttermarkt 4, Köln, 50667 ), 5000, #3( #4( 50198700, 5100.0), #5( 50798734, 45.60) ) ) 2 Apcon, 2000

... als Datenbanktabellen Nr 1396 Peter Schmitz 1 5000 3415 Maria Otten 2 8000 Nr Zinssatz Saldo Inhaber 50198700 4.3 5100.0 1396 50798734 3.1 45.60 1396 50787802 3.1 3210.4 3415 Nr Straße PLZ Ort 1 Buttermarkt 4 50667 Köln 2 Lichhof 50676 Köln SQL-Abfrage: select ko.saldo, ku., a.strasse, a.plz, a.ort from ku, ko, a where ku.nr = ko.inhaber and ku. = a.nr and ko.saldo >= 2000 Strukturkonflikt Objekt Attribut Klasse Basisdatentyp / Fachwert Systemweite Identität Objekt enthält Objekte Funktionen kapseln Daten Schnittstelle Tupel / Record / Zeile Attribut / Feld / Spalte Relation / Tabelle Domäne / Attributtyp Primärschlüssel Tupel enthält Attribute globaler Zugriff Repräsentation Ansätze zur Verbindung einer objektorientierten Anwendung mit einer relationalen Datenbank Objektorientierte Rekonstruktion der Datenbank-Elemente Transformation / Anpassung von Objektstrukturen 3 Apcon, 2000

Basisklassen und Domänen Vom Datenbanksystem sind einige Domänen vorgegeben, die Werterepräsentation und Wertemengen für Felder definieren, z.b. ÿ INTEGER, NUMERIC, MONEY, FLOAT, DATE, CHAR In Java sind einige Basisdatentypen vorgegeben, die Werterepräsentation definieren, z.b. ÿ Integer, Float, Double, Character, Boolean, Byte Unter Verwendung von Basisdatentypen kann man weitere Klassen definieren, die Werterepräsentationen festlegen. Durch die Klasse wird sichergestellt, daß nur erlaubte Werte existieren. Ein Objekt enthält Attribute mit Werten und Attribute mit Referenzen auf andere Objekte. Einige der Attribute werden in korrespondieren Feldern des Tupels dargestellt, welches das Objekt in der Datenbank repräsentiert. Die Domänen-Integrität wird durch das Objekt selbst aufrecht erhalten und bei der Konvertierung geprüft. Konvertierung und Speicherung Zu jeder Klasse wird eine weitere Mapper-Klasse definiert, die die Konversion von Java-Werten in Domänen-Werte definiert und auch die Zuordnung zu Feldnamen vornimmt. saldo abbuchen( b) einzahlen( b) Mapper void store ( k) load (OID id) Nr Zinssatz Saldo Inhaber 50198700 4.3 5100.0 1396 50798734 3.1 45.60 1396 50787802 3.1 3210.4 3415 4 Apcon, 2000

Objektidentität Identität der Objekte ist ihre Referenz, in der Datenbank aber eine eigene Objektidentität nötig (Primärschlüssel) Identität durch eigenes Identitätsattribut Klasse OID stellt eindeutige Identitäten dar saldo OID id abbuchen( b) einzahlen( b) Tabellen mit OIDs OID ist Primärschlüssel in den Datenbanktabellen OID Strasse PLZ Ort 10 Buttermarkt 4 50667 Köln 11 Lichhof 2 50676 Köln 12 Ahrstraße 45 53175 Bonn 13 Broich 137 53937 Schleiden OID Gehalt 3 Willi Wacker 4300 4 Rafael Raab 3400 Bemerkung: Alle nicht-schlüssel-attribute sind nur von der OID abhängig (eine Bedingung für die 2. Normalform) 5 Apcon, 2000

1:1 Beziehungen: Fremdschlüssel Strasse Ort PLZ Darstellung mit Fremdschlüssel OID 1 Peter Schmitz 10 5000 2 Maria Otten 11 8000 OID Straße PLZ Ort 10 Buttermarkt 4 50667 Köln 11 Lichhof 2 50676 Köln 1:1 Beziehungen: Expandierter Klasse Strasse Ort PLZ OID Straße PLZ Ort 1 Peter Schmitz Buttermarkt 4 50667 Köln 5000 2 Maria Otten Lichhof 2 50676 Köln 8000 Der Zugriff Objekts wird effizienter, aber der Begriff geht verloren. Normalisierung wird zurückgenommen. 6 Apcon, 2000

1:N-Beziehungen: Beziehungstabelle Saldo Zinssatz Darstellung mit Beziehungstabelle OID 1 Peter Schmitz 10 5000 2 Maria Otten 11 8000 _ 1 21 1 22 2 23 OID Zinssatz Saldo 21 4.3 5100.0 22 3.1 45.60 23 3.1 3210.4 1:N-Beziehungen: Fremdschlüssel Saldo Zinssatz Darstellung mit Fremdschlüssel OID 1 Peter Schmitz 10 5000 2 Maria Otten 11 8000 OID Zinssatz Saldo Inhaber 21 4.3 5100.0 1 22 3.1 45.60 1 23 3.1 3210.4 2 7 Apcon, 2000

Objekt-Beziehungen Kardinalität Darstellung expandierte Klasse Fremdschlüssel separate Tabelle 1:1 effizient 2.. Normalform flexibel ineffizient 1:n effizient nicht normalisiert effizient flexibel m:n Projekt nicht anwendbar nicht anwendbar effizient Vererbung: Horizontal abgebildet Gehalt OID Gehalt 3 Willi Wacker 12 4300 4 Rafael Raab 13 3400 information: select, from OID 1 Peter Schmitz 10 5000 2 Maria Otten 11 8000 8 Apcon, 2000

Vererbung: Vertikal abgebildet information: select p., k. from p, k where p.oid = k.oid Gehalt OID Gehalt 3 4300 4 3400 OID OID 1 Peter Schmitz 10 2 Maria Otten 11 3 Willi Wacker 12 4 Rafael Raab 13 1 5000 2 8000 Vertikal vs. Horizontal Oberklasse.. Darstellung horizontal vertikal.. spezifiziert, ohne Speicherstruktur Formular * Rechnung.. implementiert, mit Speicherstruktur Antrag Effizienter Zugriff auf alle Objektattribute, Alle Attribute liegen in einem Tupel vor. Aufwendige Suche des Tupels: DasObjektmußin mehreren Tabelle gesucht werden Aufwendiger Zugriff auf alle Objektattribute: Joinüber mehreretabellen. Effiziente Abfragen bzgl. der Abstraktion: Nur eine Tabelle! 9 Apcon, 2000

Zusammenfassung Objektorientierte Systeme i.a. kompatibel zur 2. oder 3. Normalform Integritätsbedingungen im Objekt-Modell berücksichtigt und gekapselt. Vergabe von Objektidentitäten OID vereinfacht das Modell und die Handhabung. Effizient konvertier- und zugreifbar sind einfache, flache Objekte, die als ein Tupel mit atomaren Feldwerten in einer Tabelle repräsentiert werden können. Die relationale Datenbank wird zur Dienstleistungskomponente für das objektorientierte System. Flexibilität und Tiefe der Objektstrukturen müssen mit Effizienz abgewogen werden. Der Durchsatz kann mit gezieltem Verzicht auf Normalisierung und mit cache-techniken optimiert werden. Mapping-Probleme Objektorientiert: enthält In ist ein Behälter definiert, der enthält Mapping 1:N In der RDBMS umgekehrter Verweis: In Tabelle Fremdschlüssel zur Tabelle Deshalb: Der -Mapper muß um ein Attribut erweitert werden (OID für Fremdschlüssel ) Auslesen von nach -OID Alternative: Zusätzliche Mapping-Tabelle 10 Apcon, 2000

Modellierungsprobleme In einer Tabelle werden Objekte in ihre Attribute zerlegt. Laden/Speichern von Objekten nur durch Zusammensetzen/ Auseinandernehmen der Attribute Jedes enthaltene Objekt muß extra modelliert werden (eventuell Tabelle anlegen) Aber: Zugriff auf Objekte über OID, oder über einige Attribute Nicht für jedes enthaltene Objekt Modellierung sinnvoll BLOBs Lösung: Objekte werden als serialisierte Datenpakete in die Datenbank geschrieben (Binary Large Objects) Dazu Binary-Datenbanktyp verwenden Nur ausgewählte Attribute bleiben sichtbar, mindestens die OIDs nobjekt OID oid Strasse Ort PLZ ntabelle OID Blob Ort 1 f8d%hdh... 50667 2 kf92(jf/(... 50676 11 Apcon, 2000