Objektorientierte Datenbanken

Slides:



Advertisements
Ähnliche Präsentationen
Business Engineering Philipp Osl, Alexander Schmidt
Advertisements

Datenbankdesign mit ACCESS.
Zur Rolle der Sprache bei der Modellierung von Datenbanken
Datenbanken Einführung.
Datenmodellierung Externe Phase Informationsstruktur
Frame-Logik Eine Einführung Andreas Glausch.
Objektorientierte Datenbanken
Kritische Betrachtung
Die Definitionsphase -Objektorientierte Analyse - Das statische Modell
Kapitel 4 Datenstrukturen
Das Entity-Relationship-Modell
Kapitel 3: Das Relationenmodell
Objektorientierter Entwurf (OOD) Übersicht
Anbindung an Anwendungen
KarczewskiDatenbanken II1 Objekt-Relationale (OR) Datenbanken Übersicht Einführung: Objekt-relationale Erweiterungen von SQL (ORSQL) Objekte und Tabellen.
Datenbanken I (0,*) Produkt 3 Karczewski Datenbanken I.
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg1/7 Datenbanken werden als Anhäufung von Werten eines Wertebereiches aufgefasst und Datenbankabfragen.
Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg 1/7
DOM (Document Object Model)
Datenbankdesign und Normalisierung
Datenbankentwurf mit Hilfe des ER-Modells entwickeln
Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme
SQL/XML. © Prof. T. Kudraß, HTWK Leipzig 2 2 Motivation Speicherung von XML in allen großen kommerziellen DBMS vorhanden proprietäre Lösungen für die.
Übung Datenbanksysteme UML
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Listen-
Vererbung Spezialisierung von Klassen in JAVA möglich durch
Access 2000 Datenbanken.
Datenbanken Einführung Merkmale dateiorientierte Datenverwaltung
Objektorientierte DBMS Klassen und Beziehungen Seminar: Verteilte Datenbanken Manuela Fischer.
Einführung Dateisystem <-> Datenbanksystem
Datenmodellierung - Aufbau einer Datenbank -
DVG Klassen und Objekte
RelationentheorieObjektorientierte Datenbanken AIFB SS Das ODMG-Objektmodell vs. relationales Modell (1/9) ODMG-Objektmodell Literal_type Atomic_literal.
Vorüberlegung Frühere Forderung: Möglichst alle im konzeptuellen Schema ausdrückbaren Sachverhalte sollen sich im logischen Schema wiederfinden. Forderung.
Aufgabe Aufgabe: Einflussfaktoren: ?
1 Klassen (1) Eine Klasse beschreibt eine Menge von Objekten mit gemeinsamer Struktur gemeinsamem Verhalten gemeinsamen Beziehungen gemeinsamer Semantik.
Flache Datenstrukturen in der Operationsdokumentation.
UML Begleitdokumentation des Projekts
Visualisierung objektrelationaler Datenbanken
Was umfaßt die CORBA Core Spezifikation? Welche zusätzlichen Komponenten muß ein ORB Produkt beinhalten? Core: CORBA Objekt Modell CORBA Architektur OMG.
Pascal Schmidt 25. November 2010
Einführung in die Programmierung
UML WS 09/10: Datenbanken vs MarkUp Dozent: Prof. Dr. Manfred Thaller
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Vorlesung #4 Überführung des ER-Modells in das relationale Modell
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #3 ER Modellierung.
Vorlesung #4 Überführung des ER-Modells in das relationale Modell
Allgemeines zu Datenbanken
UML-Kurzüberblick Peter Brusten.
(D.h. „Hallo MausFans!“ auf Japanisch).
DI (FH) DI Roland J. Graf MSc (GIS) U N I V E R S I T Ä T S L E H R G A N G Geographical Information Science & Systems UNIGIS.
Freiwillige Feuerwehr der Stadt Perg
Relationales Datenmodell ist beherrschend: –Riesige Datenbestände und damit hohe Investitionen. –Die große Mehrzahl der Anwendungen arbeitet mit weitgehend.
Torque in Turbine Team 4 Josef Bohninger Thomas Lindenhofer
Datenschutz in DBMS Benutzerverwaltung Rechteverwaltung
Persistenz: Objekt-Lebensdauer In RDBMS wird Lebensdauer von Werten durch ihren Typ festgelegt: Instanzen von Relationstypen sind persistent, alle anderen.
Einführung Dateisystem <-> Datenbanksystem
Abbildung UML-Schema  Rel. Schema (1)
Motivation Motivation für objektorientierte DBMS (ODBMS): –„Impedance Mismatch“ zwischen relationalem Datenmodell und Programmiersprachen-Datenmodell erfordert.
SS 2014 – IBB4C Datenmanagement Do 17:00 – 18:30 R Vorlesung #3 ER Modellierung.
SS 2014 – IBB4B Datenmanagement Do 17:00 – 18:30 R Vorlesung #4 Überführung des ER-Modells in das relationale Modell.
Einführung in die Programmierung mit Java
Sichtbarkeit einschränken
Distributed Database Systems Parallele Datenbanksysteme von Stefan Schneider.
SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R Vorlesung #4 Überführung des ER-Modells in das relationale Modell.
Diskrete Mathe Diskrete Mathematik I Listen Vorlesung 4.
 Präsentation transkript:

Objektorientierte Datenbanken Übersicht: Manifesto zu objektorientierten Datenbanken Transformation von OO-Komponenten Object Query Language (OQL) Object Database Management Group(ODMG)-Standard Literatur: A. Heuer: Objektorientierte Datenbanken – Konzepte, Modelle, Standards und Systeme. Addison-Wesley-Longman, 1997 Karczewski Datenbanken II

Einführung OODB Kritik an relationalem Ansatz: Attribute einer Relation müssen stets atomar sein: Komplexe Datentypen wie Arrays, Records sind nicht erlaubt. Jede naheliegende Struktur muss kompliziert in verschiedene, flache Tabellen aufgeteilt werden; zusammenhängende Inhalte sind über mehrere Tabellen verteilt. Karczewski Datenbanken II

Einführung OODB Kritik an relationalem Ansatz (Beispiel zu 2.): Relation Buch (nicht-normalisiert) Welche Normalform ist verletzt und warum? Karczewski Datenbanken II

Einführung OODB Kritik an relationalem Ansatz (Beispiel zu 2.): Relation Buch (normalisiert) Karczewski Datenbanken II

Einführung OODB Kritik an relationalem Ansatz (Beispiel zu 2.): Abfrage „Alle Bücher zusammen mit allen Autoren“ Technisch notwendige Verknüpfung über Schlüssel-Fremdschlüssel-Beziehung. Wünschenswert wäre: Karczewski Datenbanken II

Einführung OODB Kritik an relationalem Ansatz (Fortsetzung): Resultat einer Abfrage ist immer eine flache Relation. Jede komplexe Struktur geht bei einer Abfrage verloren: Operationen sind nicht gebunden an Relationen Karczewski Datenbanken II

Manifesto zu OODBMS Object-Oriented Database System Manifesto definiert drei Gruppen von Kriterien: KO-Kriterien (Mandatory): alle OODBMS müssen diese Eigenschaften besitzen Optionale Kriterien (Optional) als Erweiterungen Offene Kriterien (open), die verschiedene Alternativen von Charakteristika diskutieren Karczewski Datenbanken II

Object-Orientation in Databases Eight rules of object orientation: Complex objects Object identity Encapsulation of data Types and Classes Inheritance Polymorphism Completeness Extensibility Five rules of databases: Persistence Large databases Multi user operation Recovery Ad hoc query The importants of these rules will explained with the next slides. Karczewski Datenbanken II

Manifesto zu OODBMS Wichtige Aspekte: Konstruktoren sollen ermöglichen mit benutzerdefinierten Datentypen beliebiger Komplexität (z.B. Tupel, Menge, Liste, Reihe. Die Konstruktoren müssen orthogonal sein, also miteinander kombinierbar (z.B. Liste von Mengen) Karczewski Datenbanken II

Manifesto zu OODBMS Wichtige Aspekte: Der Objektidentifikator ist ein unabhängig von einem Primärschlüssel existierendes Identifikationsmerkmal, das jedes Objekt ohne Aktivität des Benutzers besitzt (vergleichbar einer Adresse, auf die referenziert werden kann). Beispiel: Zwei Kunden mit Namen Meyer existieren im System. Sind diese identisch? Im relationalen System muss hierfür z.B. eine Kundennummer eingeführt werden. Im OODMBS kann man dies am Objektidentifikator erkennen. Karczewski Datenbanken II

Manifesto zu OODBMS Wichtige Aspekte: Bekannt aus der OO-Programmierung: Attribute von Objekten dürfen nur über definierte Methoden manipuliert werden. Attribute sollten immer private definiert sein, um die Kapselung herzustellen. Widerspruch: Ein universelles Ad-Hoc-Abfragesystem (vergleichbar mit SQL) soll gerade unabhängig von einer Kapselung einfachen Zugriff auf alle Objekte der Datenbank ermöglichen. Karczewski Datenbanken II

Manifesto zu OODBMS Wichtige Aspekte: Typen sind eher statisch (zur Übersetzungszeit definiert, C++) Klassen sind dynamisch (zur Laufzeit aktiviert, SMALLTALK) Beispiel: Bereits erzeugtes Objekt vom Typ Person soll in einem abgeleiteten Objekt Angestellter erweitert werden. Im typbasierten System nicht möglich In der Praxis ist dieses Problem kaum relevant! Karczewski Datenbanken II

Manifesto zu OODBMS Wichtige Aspekte: Klassen (oder Typen) können in einer Vererbungshierarchie angeordnet sein, z.B. Geschäftspartner soll spezialisiert werden zu Kunden, Lieferanten oder Spediteuren. Gemeinsame Attribute werden in der Klasse Geschäftspartner definiert. Anzahl der Operationen werden reduziert. Karczewski Datenbanken II

Manifesto zu OODBMS Wichtige Aspekte: Spätes Binden ermöglicht Reduzierung von Code, da erst zur Laufzeit bestimmt wird, welcher Code ausgeführt wird. Beispiel: ohne spätes Binden mit spätem Binden Zur Laufzeit wird erkannt, welche Methode print angewendet werden muss, Code wird drastisch reduziert. Karczewski Datenbanken II

Manifesto zu OODBMS Wichtige Aspekte: Forderung stammt aus der Theorie der Programmiersprachen. Algorithmen jeder Art müssen mit der Sprache ausgedrückt werden können. Alle klassischen Programmiersprachen erfüllen diese Forderung, jedoch SQL nicht! Karczewski Datenbanken II

Manifesto zu OODBMS Wichtige Aspekte: Menge von vordefinierten System-Datentypen und die vom Benutzer definierten Datentypen sollen syntaktisch und semantisch nicht unterschiedlich behandelt werden. Wenn also ein selbst-definierter Typ eingesetzt wird, müssen sie genauso behandelt werden, wie die System-Datentypen. Karczewski Datenbanken II

Manifesto zu OODBMS Wichtige Aspekte: Dauerhaftigkeit (Persistenz) ist eine Grundvoraussetzung für alle Datenbanksysteme. Der Benutzer sollte grundsätzlich davon ausgehen, dass die veränderten Daten persistent gespeichert werden, ohne dies stets explizit angeben zu müssen. Karczewski Datenbanken II

Manifesto zu OODBMS Wichtige Aspekte: Die bekannten Forderungen, die durch die ANSI-/SPARC-Architektur für relationale Datenbanksysteme vorgegeben sind, sollen auch für OODBMS gelten. Die Trennung der Ebenen, die effiziente Ablage der Daten, die Optimierung sollen vom System aus erfolgen. Karczewski Datenbanken II

Manifesto zu OODBMS Wichtige Aspekte: Synchronisation des parallelen Zugriffs auf die Daten erfolgt nach den bekannten Prinzipien, die bereits bei relationalen Systemen gelten. Wichtige Aspekte: Die Datensicherheit soll ebenso komfortabel gewährleistet sein wie bei relationalen Systemen. Karczewski Datenbanken II

Manifesto zu OODBMS Wichtige Aspekte: Ein interkatives Abfragesystem sollte verfügbar sein, das ähnlich komfortabel gestaltet sein sollte wie SQL bei relationalen Systemen: deklarativ (Was statt Wie) Effizient (mit internen Systemoptimierungen) Karczewski Datenbanken II

Transformation von OO-Komponenten Ziel: Überführung jedes semantischen Datenmodells in eine äquivalente objektorientierte Datenbankstruktur Schritte: ER-Modell UML-Modell OODBMS-Struktur Abbildung erfolgt designunabhängig, also nicht unbedingt optimiert, sondern allgemeingültig Karczewski Datenbanken II

Transformation von OO-Komponenten Entity-Typen: Entity-Typen entsprechen bei der UML Klassen Beispiel: DDL von Fast Objects UML-Klasse Attribute Konstruktor Destruktor Methoden Karczewski Datenbanken II

Transformation von OO-Komponenten Assoziationen: In der relationalen Datenbank wird bei einfachen Assoziationen (1:1-, 1:n-Beziehungen) für jede der beteiligten Entity-Typen eine Tabelle angelegt. Die Beziehung erfolgt dann über die Schlüssel-/Fremdschlüssel-Beziehung Bei m:n-Beziehungen ist im relationalen Modell eine dritte Tabelle notwendig. In der OO-Datenbank ist in jedem Fall (1:1, 1:n, m:n) nur die Definition von zwei Klassen notwendig. Karczewski Datenbanken II

Transformation von OO-Komponenten Assoziationen (Beispiel): Menge von Referenzen auf Märkte (*) Referenz auf Veranstalter (1) Karczewski Datenbanken II

Transformation von OO-Komponenten Assoziationen (Fortsetzung): Frage: Wie sieht die Lösung bei m:n- bzw. 1:1-Beziehung aus? Braucht man den Zugriff auf die Objekte immer nur aus einer Richtung, kann man auf eine der Referenzen verzichten Assoziation mit Assoziationsklassen müssen auf andere Weise realisiert werden (vergleichbar der Realisierung im relationalen Modell mit 3 Tabellen) Karczewski Datenbanken II

Transformation von OO-Komponenten Assoziationen mit Assoziationsklasse (Beispiel): Menge von Referenzen auf Angebote (*) Referenz auf Produkt (1) Referenz auf Markt (1) Karczewski Datenbanken II

Transformation von OO-Komponenten Assoziationen mit Assoziationsklasse (Anmerkungen): Wie zuvor, können Referenzen weggelassen werden, wenn eine Navigationsrichtung nicht notwendig ist. Falls Komplexitätsgrad niedrig ist, kann die dritte Klasse weggelassen werden und die Attribute der Assoziation einer der beiden Klassen (mit der niedrigen Komplexität) zugeordnet werden (vgl. Anwendung bei relationalen Datenbanken). Karczewski Datenbanken II

Transformation von OO-Komponenten Rekursive Assoziation: wird analog umgesetzt wie die einfache Assoziation durch eine Klasse mit zwei Referenzmengen für die rekursive Beziehung (für jede Richtung eine) bei m:n-Beziehungen Assoziationsklasse wird notwendig, falls bei komplexen Beziehungen Attribute in der Beziehung vorkommen Karczewski Datenbanken II

Transformation von OO-Komponenten Rekursive Assoziation (Beispiel ohne Assoziationsklasse): Die beiden Referenzmengen sind in einer Klasse, weil Rekursion vorhanden ist Karczewski Datenbanken II

Transformation von OO-Komponenten Rekursive Assoziation (Beispiel mit Assoziationsklasse): Referenzmengen aus Produkt heraus Einfache Referenzen von BestehtAus zu Produkt Karczewski Datenbanken II

Transformation von OO-Komponenten Mehrstellige Assoziation: Realisierungsstrategie hängt von der Komplexität der Beziehung ab. Bei höchster Komplexität ist die mehrstellige Assoziation wie die Assoziationsklasse bei zweistelliger Assoziation zu betrachten. Einsparung von Klassen ist möglich bei niedriger Komplexität Karczewski Datenbanken II

Transformation von OO-Komponenten Mehrstellige Assoziation (Beispiel): Karczewski Datenbanken II

Transformation von OO-Komponenten Spezialisierung: Erinnerung aus eERM: Vollständig: Jeder Generalist ist einem Spezialisten zugeordnet. -> Generalist wird als abstrakte Klasse definiert. Nicht vollständig: Es gibt Objekte des Generalisten, die keinem Spezialisten zugeordnet sind. -> Generalist ist keine abstrakte Klasse Disjunkt: keine besondere Maßnahme nötig Überlappend: -> Mehfachvererbung wird in einer neu zu erzeugenden Klasse realisiert. Nicht jedes OODBMS lässt dies zu. Karczewski Datenbanken II

Transformation von OO-Komponenten Spezialisierung (Beispiel): Karczewski Datenbanken II

Anzeigen einer Kollektion Alle Produkte der Keramik-Datenbank: Vergleichbar mit dem Cursor von relationalen Datenbanken Get liefert nächstes relevantes Element Unget gibt benutztes Element wieder frei Karczewski Datenbanken II

Änderung mit Iterator Änderung mit Iterator: Karczewski Datenbanken II