Prof. Dr. T. Kudraß1 Objekt-Datenbanken. Prof. Dr. T. Kudraß2 Nichtstandard-Anwendungen: Einige Beispiele Entwurf (CAD) –Architektur –Maschinenbau –Elektronik.

Slides:



Advertisements
Ähnliche Präsentationen
C Sharp (C#) Martin Saternus Senior Student Partner
Advertisements

Einführung 1.
Prof. Dr. T. Kudraß1 Einführung. Prof. Dr. T. Kudraß2 Dateisysteme Datei (File) –Zusammenfassung von Sätzen des gleichen Typs Satz (Record) –Sequenz von.
Einführung 1.
Folien 2-5, 7-8 © Prof. Dr. Manfred Rössle (FH Aalen)
Das Entity-Relationship-Modell
Datenmodellierung Externe Phase Informationsstruktur
Objektorientierte Datenbanken
Die Definitionsphase -Objektorientierte Analyse - Das statische Modell
Inhaltlich orientierter Zugriff auf unstrukturierte Daten
Warum Objektorientierung?
Kapitel 4 Datenstrukturen
Das Entity-Relationship-Modell
Universität Paderborn
Objektorientierte Datenbanken
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Java: Grundlagen der Objektorientierung
Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg1/7 Datenbanken werden als Anhäufung von Werten eines Wertebereiches aufgefasst und Datenbankabfragen.
AGXIS – Ein Konzept für eine generische Schnittstellenbeschreibung Dr.-Ing. Ulrich Hussels, RISA GmbH 07. Juni 2005 Workshop Umweltdatenbanken 2005.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 4 Vererbung Sommersemester 2003 Lars Bernard.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 5 Polymorphismus Sommersemester 2003 Lars Bernard.
Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme
Das Relationen-Modell
Relationaler Datenbankentwurf (I)
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.
Oberseminar Datenbanken Multimediale Datenbanken Christian Völschow.
Das Relationenmodell 1.
Das Entity-Relationship-Modell
Prof. Dr. T. Kudraß1 Das Relationen-Modell. Prof. Dr. T. Kudraß2 Einführung Geht auf klassische Arbeit von Codd zurück (1970) Meistgenutztes Datenmodell.
Alternativen zu relationalen Datenbanken
Prof. Dr. T. Kudraß1 Relationenkalkül. Prof. Dr. T. Kudraß2 Relationenkalkül Zwei Ausprägungen: Tupelrelationenkalkül (TRK) und Domänenrelationenkalkül.
Prof. Dr. T. Kudraß1 Relationen-Algebra. Prof. Dr. T. Kudraß2 Relationale Anfragesprachen Query Language (QL): Manipulation und Retrieval von Daten einer.
MMQL – Multimedia Query Language Eine Anfragesprache für Multimedia-Ähnlichkeitsanfragen Christian Mantei.
Technische Grundlagen der Interoperabilität
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.
Kollektionstypen (1) Es sind polymorphe Typkonstruktoren, jeweils als Sorten- und als Klassenkonstruktor (t,v beliebige Typen): –set, Set :Ungeordnete.
Einführung und Überblick
UML Begleitdokumentation des Projekts
objekt-relationale Datenbanken
Visualisierung objektrelationaler Datenbanken
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
Generalisierung/Spezialisierung Subtypisierung/Vererbung
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
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
Allgemeines zu Datenbanken
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.
Relationales Datenmodell ist beherrschend: –Riesige Datenbestände und damit hohe Investitionen. –Die große Mehrzahl der Anwendungen arbeitet mit weitgehend.
Objektorientierte Modellierung mit UML
Prof. Dr. T. Kudraß1 Einführung. Prof. Dr. T. Kudraß2 Informationsflut Motivation –Komplexe Datenstrukturen –Aktuelle, richtige, redundanzfreie Daten.
Oberseminar Moderne Datenbanken WS03/04
OQL-Anbindung an Java (1) Java als Beispiel für die Einbettung von OQL in eine Programmiersprache Die OQL-Einbettung in Java ist teilweise mit dynamischem.
Persistenz: Objekt-Lebensdauer In RDBMS wird Lebensdauer von Werten durch ihren Typ festgelegt: Instanzen von Relationstypen sind persistent, alle anderen.
Objekte und Literale ODMG-Objektmodell kennt zwei Arten von Datenelementen: Literale: Identität ist ausschließlich durch Wert gegeben. Nur maximal eine.
Einführung Dateisystem <-> Datenbanksystem
Motivation Motivation für objektorientierte DBMS (ODBMS): –„Impedance Mismatch“ zwischen relationalem Datenmodell und Programmiersprachen-Datenmodell erfordert.
TypoScript.
Datenbank System (DBS) - Warum?
Modellierung der Wirklichkeit
WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #9 SQL Zusammenfassung.
Objektorientierte (OO) Programmierung
1 Grundsätze objektorientierter Programmierung. Dr. Wolfram Amme, Grundsätze objektorientierter Programmierung, Informatik II, FSU Jena, SS Objektorientierte.
Vorlesung #4 Relationales Kalkül und SQL (Teil 1)
 Präsentation transkript:

Prof. Dr. T. Kudraß1 Objekt-Datenbanken

Prof. Dr. T. Kudraß2 Nichtstandard-Anwendungen: Einige Beispiele Entwurf (CAD) –Architektur –Maschinenbau –Elektronik (VLSI) –Softwareproduktion –Chemische Strukturen Kartographie –Landkarten –Flächenregister Bildverarbeitung Industrielle Produktion Auch: Büroautomatisierung usw.

Prof. Dr. T. Kudraß3 Neue Anforderungen: Modellierung von Struktur hochstrukturierte Informationen –beliebig zusammengesetzte Objekte –beliebige Beziehungen zwischen Objekten z.B. benutzt, abgeleitet von –Versionen Alternativen, Revisionen, Varianten Konfigurationen –spezielle Attributwertebereiche Vektoren, Matrizen, Geometrie –Beziehungen zwischen Typen von Objekten Generalisierung / Spezialisierung unstrukturierte Informationen –multimediale Informationen (BLOB)

Prof. Dr. T. Kudraß4 Neue Anforderungen: Modellierung von Verhalten mächtige Operatoren zum Umgang mit hochstrukturierter Information –passende Operatoren für alle Arten von Zusammensetzungen, Beziehungen –passende Operatoren für alle Attributwertebereiche, Versionen Berücksichtigung typspezifischen Verhaltens –große Vielfalt von Informationstypen –Gemeinsamkeiten ähnlicher Typen Beispiel: Verschiebe Viereck

Prof. Dr. T. Kudraß5 Beschränkungen klassischer Datenmodelle einfach strukturierte Datenobjekte –satzorientiert, festes Format geringe semantische Ausdrucksfähigkeit –fehlende Abstraktionskonzepte nur einfache Integritätsbedingungen umständliche Einarbeitung in Programmiersprachen auf kurze Transaktionen zugeschnitten (ACID) keine Unterstützung von –Zeit und Versionen –räumlichen Beziehungen mangelnde Effizienz bei anspruchsvollen Anwendungen (z.B. Verarbeitung von komplexen Joins)

Prof. Dr. T. Kudraß6 Objektorientierung Umwelt- ausschnitt 1:N1:1 satzorientiertes Datenmodell objektorientiertes Datenmodell Datenbank

Prof. Dr. T. Kudraß7 Satzorientiert vs. Objektorientiert Satzorientiertes Datenmodell einfache Objekte aus atomaren oder zusammengesetzten Typen (beschränkte Zusammensetzung) –keine Definition beliebiger neuer Typen + ausschließlich vordefinierte generische Operatoren –Objekte erzeugen und löschen –Attributwerte modifizieren –Suche nach Attributwerten (Voll) Objektorientiertes Datenmodell zusammengesetzte Objekte (strukturiert, komplex), ohne Beschränkung + Möglichkeiten zur Definition typspezifischer Operatoren (und damit neuer Typen) durch Benutzer + OO Aspekte

Prof. Dr. T. Kudraß8 Definition eines objektorientierten DBMS OODBMS muß zwei Kriterien erfüllen –es muß ein DBMS sein –es muß ein objektorientiertes System sein DBMS-Aspekte –Persistenz –Externspeicherverwaltung –Synchronisation (Concurrency Control) –Logging und Recovery –Ad-hoc-Anfragesprache OO-Aspekte –Objektidentität –komplexe Objekte –Kapselung –Typ-/Klassenhierarchie –Vererbung –Überladen (Overloading) und spätes Binden (Late Binding) –Erweiterbarkeit

Prof. Dr. T. Kudraß9 Objektidentität Existenz des Objekts ist unabhängig von seinem Wert Objektidentität –nicht durch anwendungsspezifische Werte wie im Relationenmodell –eindeutige Objekt-Identifikatoren (Surrogate) –Objekte können identisch oder gleich sein Objekt-IDs –während der Objektlebensdauer konstant –üblicherweise systemverwaltet Objekt-Referenzen –nicht das gleiche wie referentielle Constraints! –Schlüsselwort: REF –Navigation entlang von Referenzen: Punktnotation

Prof. Dr. T. Kudraß10 interface impl interface impl interface impl Kapselung von Objekten interface impl Instanzen benutzerdefinierter Typen unsichtbar Code der Operatoren bleibt Anwender verborgen Anwender sieht nur Operatorschnittstellen –Objektzugriff ausschließlich mit den definierten Ops möglich interface impl O2O5O6 O3 O4O1 sichtbar verdeckt Op1Op2Op3Op4Op5

Prof. Dr. T. Kudraß11 Abstrakte Datentypen (auf Attributebene) Erzeugung problembezogener Datentypen als neue Basistypen zugeschnittene Operatoren und Funktionen –Beispiel: ADT DATE, Operator - NormalfallFinanzwelt 15. April März März Febr SELECT Beschäftigungsdauer:Heute() - P.EDATUM FROM PERS P Weitere Anwendungsbeispiele: Datentypen TEXT, IMAGE, LINE (Funktion Länge u.a.)

Prof. Dr. T. Kudraß12 Anwendungsbeispiel: Verwaltung räumlicher Objekte Relationenmodell bietet keine Unterstützung hohe Komplexität bereits in einfachen Fällen –Beispiel: Darstellung von Rechtecken in der Ebene a) Relationenmodell R-ECK (RNR, X1, Y1, X2, Y2: INTEGER) Finde alle Rechtecke, die das Rechteck ((0,0),(1,1)) schneiden! SELECT RNR FROM R-ECK WHERE (X1 > 0 AND X1 0 AND Y1 < 1) OR (X1 > 0 AND X1 0 AND Y2 < 1) OR (X2 > 0 AND X2 0 AND Y1 < 1) OR (X2 > 0 AND X2 0 AND Y2 < 1) (X2,Y2) (X1,Y1)

Prof. Dr. T. Kudraß13 Anwendungsbeispiel: Verwaltung räumlicher Objekte b) ADT-Lösung ADT BOX mit Funktionen INTERSECT, CONTAINS, AREA usw. R-ECK (RNR: INTEGER, Beschr: BOX) SELECT RNR FROM R-ECK WHERE INTERSECT (Beschr, (0,0,1,1)) in SQL: CREATE TYPE BOX x1: integer, y1: integer, x2: integer, y2: integer, member function intersect... member function contains... member function area...

Prof. Dr. T. Kudraß14 Zusätzliche Typkonstruktoren Erzeugen strukturierter Datentypen aus Basistypen Relationenmodell beschränkt auf Bildung von Tupeln und Relationen Wünschenswert: –ARRAY-Konstruktor (VEKTOR) –TUPLE –LIST –SET –MULTISET / BAG Beliebige Kombination aller Konstruktoren zum Aufbau komplexer Objekte

Prof. Dr. T. Kudraß15 ADTs auf Objektebene Jedes Objekt ist gekapselt und besitzt eine objektspezifische Menge von Operationen –Struktur des Objektes ist verborgen –Verhalten des Objekts ausschließlich durch seine Operationen bestimmt –Implementierung der Operationen bleibt verborgen XXX ANGESTELLTER Relation Objekttyp Menge spez. Operationen EINSTELLUNG VERSETZUNG GEHALTSERHÖHUNG SQL-Operationen Objektorientierung Erhöhte Datenunabhängigkeit

Prof. Dr. T. Kudraß16 Typen / Klassen Typ –Menge von Werten –Beschreibung von Objekten mit gleicher Struktur / gleichen Operatoren Begriff aus der DBS-Welt Klasse –Menge von Objekten mit spezifischen Eigenschaften –besitzt Methoden, gehört zu einer Klassenhierarchie –im Vergleich zu Typen steht die Erzeugung neuer Instanzen der Klasse im Vordergrund (NEW-Methode) Begriff aus der OOPL-Welt

Prof. Dr. T. Kudraß17 Typ-/Klassenhierarchie und Vererbung Anordnung von Objekttypen in Generalisierungs-/Spezialisierungs- hierarchie (IS-A-Beziehung) disjunkte/überlappende bzw. partielle/vollständige Spezialisierung Vererbung von –Attributen –Integritätsbedingungen –Default-Werten –Methoden / Funktionen Arten der Vererbung –einfach (Hierarchie) –mehrfach (Typverband) –selektiv Vorteile des Vererbungsprinzips –Code-Wiederverwendung –Modellierungsdisziplin (schrittweise Verfeinerung) KONTO SPAR- BUCH GIRO- KONTO FEST- ZINS SB Abhebung Einzahlung Konto-Nr. Inhaber Konto-Stand Überweisung Zinssatz Fälligkeit

Prof. Dr. T. Kudraß18 Spätes Binden (Late Binding) ObjektSelektorParameter Empfänger zu verarbeitende Methode Object 1... Method 1... send... Objekt x Argument x Selektor x Object 2... Method x Object 3... Method x

Prof. Dr. T. Kudraß19 Überladen (Overloading) und spätes Binden Methoden können für Subklassen redefiniert werden Name der Methode bleibt gleich, Wirkung der Methode ist objektabhängig (Overloading) –Beispiel: DISPLAY-Funktion für geometrische Objekte kann für jeden Objekttyp neu definiert werden Variante: generische Funktionen –Beispiel: allgemeine COUNT-Funktion für Mengenobjekte (unabhängig vom Komponententyp) –Überladen impliziert (meistens) Binden zur Laufzeit (late binding)

Prof. Dr. T. Kudraß20 Operationale Vollständigkeit nicht alle Berechnungen in herkömmlichen DB-Anfragesprachen möglich –DML ist Teilsprache Einbettung in allgemeine Programmiersprache Verwendung zweier Sprachen führt zu Problemen (Impedance Mismatch) –unterschiedliche Typ-Systeme nur begrenzte Typ-Prüfungen möglich Menge von Objekten mit spezifischen Eigenschaften –deklarative DML vs. prozedurale Programmiersprache –mengen- vs. satzorientierte Verarbeitung (Cursor-Konzept) umständliche, fehleranfällige Programmierung Ziel: –einheitliche DB-Programmiersprache –mit persistenten Datenstrukturen

Prof. Dr. T. Kudraß21 Schnittstelle eines OODBS OO Sprach-Schnittstelle –strikte Kapselung erlaubt nur Methodenaufrufe –beschränkte Ausdrucksmächtigkeit vor allem beim Retrieval –beträchtliche Erweiterung für OODBS erforderlich –Einführung eines objektorientierten Datenmodells (OODM) OO Datenmodell als Schnittstelle eines OODBS –Datendefinition durch DDL –Datenmanipulation durch DML (deklarativ / prozedural) –Integritäts- und Zugriffskontrolle Eigenschaften der Sprachschnittstellen –deklarative DML nur für ad-hoc-Anfragen (verletzt Kapselung) –prozedurale DML ist eine allgemeine Programmiersprache (z.B. C++) mit einer Query-Sprache als Teilmenge, um programmierte Anfragen auszuführen

Prof. Dr. T. Kudraß22 Fazit Man kann ALLES in einem relationalen DBMS (+ einer konventionellen Programmiersprache) ausdrücken: ABER: In vielen Fällen gibt es bessere Wege zum Ziele BESSERE EFFIZIENZ –Entwurfs-, Entwicklungs- und Wartungseffizienz –Ausführungseffizienz durch verbesserte Datenmodellierung (umfassender, präziser) durch verbesserte Verhaltensmodellierung (Programm- entwicklung angepaßt) DAHER: objektorientierte Datenbanktechnologie!

Prof. Dr. T. Kudraß23 Trends Weiterentwicklung relationaler zu objektrelationalen DBMS (vgl. auch SQL:1999) –BLOB Datentypen –benutzerdefinierte Datentypen und Datenbankroutinen –typisierte Tabellen –gegenwärtig noch große Heterogenität der DBMS –Pakete für benutzerdefinierte Erweiterung (z.B. Informix Data Blades) Gateway-Ansatz zur Integration von Persistenz in objekt- orientierten Anwendungen –Middleware-Lösung zur Nutzung nicht-objektorientierter Datenquellen –Intelligentes Cache-Management und Entwicklungswerkzeuge (z.B. Transformation Objektmodell relationales Datenmodell) –Kommerzielle Tools: Persistence, Toplink, Roguewave Objektorientierte Datenbanksysteme –Produkte: ObjectStore (jetzt: eXcelon), Versant, Poet