Upload
dangtram
View
212
Download
0
Embed Size (px)
Citation preview
Universitat Bielefeld Einleitung/MotivationGrenzen relationaler Modelle
Objekt-orientierte Datenmodelle
Vorlesung Datenbanken II – SS 2006
Sven Wachsmuth
Universitat Bielefeld, Technische Fakultat, AG Angewandte Informatik
Vorlesung Datenbanken II – SS 2006 1
Universitat Bielefeld Einleitung/MotivationGrenzen relationaler Modelle
Objekt-orientierte Datenmodelle
3.1 Konzepte objektorientierter Systeme
Objektorientierte Modelle:
Paradigma zur Darstellung von struktureller und prozeduralerInformation.
Ziel: Anheben der AbstraktionsebeneI Datenabstraktion (Kapselung von Objektzustande)I Gegenstandsabstraktion
(Modelle von problemspez. Gegenstanden)I Ablaufabstraktion
(Objektmethoden kapseln Implementierungen)I Schichtenabstraktion
(Objekte realisieren virtuelle Maschinen)
Vorlesung Datenbanken II – SS 2006 2
Universitat Bielefeld Einleitung/MotivationGrenzen relationaler Modelle
Objekt-orientierte Datenmodelle
3.1 Konzepte objektorientierter Systeme
Objektorientierter Entwurf:I beschreibt Objekte mit gemeinsamen Eigenschaften durch
einen abstrakten DatentypI implementiert diese durch KlassenI ermittelt 2 Arten von Beziehungen zwischen diesen
Klassen:I Klasse – KomponentenklasseI Klasse – Unterklasse
Vorlesung Datenbanken II – SS 2006 3
Universitat Bielefeld Einleitung/MotivationGrenzen relationaler Modelle
Objekt-orientierte Datenmodelle
3.1 Konzepte objektorientierter Systeme
Grundlegende OO-Konzepte von Programmiersprachen:I Objekttypen: bestehen aus Attributen + MethodenI Einkapselung: Schnittstelle stellt Zugriff auf Attribute und
Methoden bereit(Implementierung bleibt verborgen)
I Nachrichten: Kommunikation zwischen Objektengeschieht durch Senden von Botschaften
I Klassen: zwei verschiedene SichtenI ADT-Implementierungen: Klasse implementiert einen
abstrakten DatentypI Objektfabrik: Klasse produziert Objekte gleichen Typs
I ...
Vorlesung Datenbanken II – SS 2006 4
Universitat Bielefeld Einleitung/MotivationGrenzen relationaler Modelle
Objekt-orientierte Datenmodelle
3.1 Konzepte objektorientierter Systeme
Grundlegende OO-Konzepte von Programmiersprachen:I ...I Konstruktoren/Destruktoren: Erzeugen und Loschen von
Objekten(Konstruktor ubernimmt Initialisierung)
I Zustand eines Objektes: Gesamtheit der AttributwerteI Objektidentitat (Surrogate):
kein Wertbasierter Identitatsbegriff,Identitat ist Eigenschaft eines Informationselementes(unabhangig vom Zustand, wird systemseitig vergeben)
I ...
Vorlesung Datenbanken II – SS 2006 5
Universitat Bielefeld Einleitung/MotivationGrenzen relationaler Modelle
Objekt-orientierte Datenmodelle
3.1 Konzepte objektorientierter Systeme
Grundlegende OO-Konzepte von Programmiersprachen:I ...I Identitat und Gleichheit:
I Referenzsemantik (identisches Objekt)I Wertesemantik (Objekt mit gleichem Zustand)
flache Gleichheit(testet alle Werte und Referenzen auf Gleichheit)
tiefe Gleichheit(testet alle Werte rekursiv entlang der Referenzen zuKomponentenobjekten)
I ...
Vorlesung Datenbanken II – SS 2006 6
Universitat Bielefeld Einleitung/MotivationGrenzen relationaler Modelle
Objekt-orientierte Datenmodelle
3.1 Konzepte objektorientierter Systeme
Grundlegende OO-Konzepte von Programmiersprachen:I ...I Typisierung:
I statische Typisierung (Typen sind zur Compilezeitbekannt)I dynamische Typisierung (Typen werden zur Laufzeit
bestimmt)
I strenge Typisierung (Zusicherung, dass zur Laufzeit keineTypfehler auftreten)
→ wichtig fur DB (Optimierung, Effizienz, Sicherheit)
I ...
Vorlesung Datenbanken II – SS 2006 7
Universitat Bielefeld Einleitung/MotivationGrenzen relationaler Modelle
Objekt-orientierte Datenmodelle
3.1 Konzepte objektorientierter Systeme
Grundlegende OO-Konzepte von Programmiersprachen:I ...I Vererbung:
I Is-a-Hierarchie: Unterklasse ist Teilmenge der Oberklasse(logische Sicht)
I Typhierarchie: Vererbung von Verhalten, Substituierbarkeit(Benutzersicht)
I Klassenhierarchie: Vererbung der Implementierung(Implementierersicht)
I Wertvererbung/Objektvererbung: Vererbung von Zustanden(Datenbanksicht)
I ...
Vorlesung Datenbanken II – SS 2006 8
Universitat Bielefeld Einleitung/MotivationGrenzen relationaler Modelle
Objekt-orientierte Datenmodelle
3.1 Konzepte objektorientierter Systeme
Grundlegende OO-Konzepte von Programmiersprachen:I ...I Polymorphismus / dyn. Binden:
I Ad-hoc: Uberladen von Funktionsnamen, impliziteTypkonversion
I Universell: Variation einer einzigen Implementierung
parametrisch: Typen als Parameter
Teilmengen: Typen hangen uber Typ-Untertyp-Beziehungzusammen
I ...
Vorlesung Datenbanken II – SS 2006 9
Universitat Bielefeld Einleitung/MotivationGrenzen relationaler Modelle
Objekt-orientierte Datenmodelle
3.1 Konzepte objektorientierter Systeme
Grundlegende OO-Konzepte von Programmiersprachen:I ...I Metaklassen: Zuordnung von Attributen zu einer ganzen
KlasseI statische Attribute (z.B. C++)I Klassen sind wiederum Objekte (z.B. Smalltalk)
Vorlesung Datenbanken II – SS 2006 10
Universitat Bielefeld Einleitung/MotivationGrenzen relationaler Modelle
Objekt-orientierte Datenmodelle
3.1 Konzepte objektorientierter Systeme
Ziel der OO-DBMS ist die Uberwindung des impedancemismatch zwischen OO-Programmen und DBMS
I die Wirtssprache wird zur DatendefinitionsspracheI Objekt-orientierte DBS:
I DB ist eine Menge von Klassen (⇔ Relationen)I eine Klasse(n) (-extension) ist eine Menge von Objekten
(⇔ Tupeln)I Objekt-relationale DBS:
I oberstes Konstrukt bleibt eine RelationI Domanen werden auf Klassen abgebildetI Objekte sind komplexe Werte
Vorlesung Datenbanken II – SS 2006 11
Universitat Bielefeld Einleitung/MotivationGrenzen relationaler Modelle
Objekt-orientierte Datenmodelle
3.1 Konzepte objektorientierter Systeme
Erweiterte Konzepte gegenuber RDBS:I strukturierte/komplexe DomanenI keine Unterscheidung zwischen systemseitigen und
benutzerspezifischen Domanen.I eine DB speichert Implementierungen von MethodenI DB-Objekte haben eine persistente oid (nicht wertbasiert)I VererbungshierarchieI Komponentenverweise uber oids
Vorlesung Datenbanken II – SS 2006 12
Universitat Bielefeld Einleitung/MotivationGrenzen relationaler Modelle
Objekt-orientierte Datenmodelle
3.2 OO-Erweiterungen in SQL:1999, SQL:2003
I strukturierte/komplexe Domanen:
Row-Typen:CREATE TABLE Person (
Name CHAR(20),Address ROW(Number INTEGER, Street CHAR(20),
ZIP CHAR(5))
Zugriff uber:SELECT P.Address.ZIP FROM Person P
Row-Konstruktor:VALUES(’John Doe’, ROW(666,’Hollow Rd.’,’66666’))
Vorlesung Datenbanken II – SS 2006 13
Universitat Bielefeld Einleitung/MotivationGrenzen relationaler Modelle
Objekt-orientierte Datenmodelle
3.2 OO-Erweiterungen in SQL:1999, SQL:2003
I Benutzerdefinierte Typen (UDTs):
CREATE TYPE PersonType AS (Name CHAR(20),Address ROW(Number INTEGER, Street CHAR(20),
ZIP CHAR(5)));CREATE TYPE StudentType UNDER PersonType AS (
Id INTEGER,Status CHAR(2))
METHOD award degree() RETURNS BOOLEAN;CREATE METHOD award degree() FOR StudentTypeLANGUAGE CEXTERNAL FILE ’file:/home/admin/award degree’;
Vorlesung Datenbanken II – SS 2006 14
Universitat Bielefeld Einleitung/MotivationGrenzen relationaler Modelle
Objekt-orientierte Datenmodelle
3.2 OO-Erweiterungen in SQL:1999, SQL:2003
I persistente OIDs (typed tables):CREATE TABLE Student OF StudentTypeREF IS stud oid;CREATE TABLE TRANSCRIPT (
Student REF(StudentType) SCOPE Student,CrsCode CHAR(6), Semester CHAR(6), Grade CHAR(1) )
I Nur Tupel in typed tables haben OIDs.I Unterscheidung Wert↔ Referenz wie in C++I Referenzierung: T.Student->Address.Street
Vorlesung Datenbanken II – SS 2006 15
Universitat Bielefeld Einleitung/MotivationGrenzen relationaler Modelle
Objekt-orientierte Datenmodelle
3.2 OO-Erweiterungen in SQL:1999, SQL:2003
I Vererbung uber Supertables:CREATE TABLE Student OF StudentTypeUNDER Person
I Kollektionen (mengenwertige Attribute):CREATE TYPE StudentType UNDER PersonType AS (
Id INTEGER,Status CHAR(2),Enrolled REF(CourseType) MULTISET );
SELECT S.Id, C.NameFROM Student S, Course CWHERE C.CrsCode IN (
SELECT E -> TmpCrsCodeFROM UNNEST(S.Enrolled) AS TmpCourse(TmpCrsCode) E);
Vorlesung Datenbanken II – SS 2006 16
Universitat Bielefeld Einleitung/MotivationGrenzen relationaler Modelle
Objekt-orientierte Datenmodelle
3.3 Kriterien fur OODBS
[Atkinson et al. (1989) ’The OO Database Manifesto’]
Notwendige Eigenschaften:1 Darstellung komplexer Objekte aus einfachen durch
Anwendung von Konstruktoren(Orthogonalitat: Konstruktor ist auf jedes Objektanwendbar)
2 Objektidentitat: Objekte konnen Komponentenobjekteuber Referenzen teilen(→ nur ein Update notwendig)
3 Einkapselung: Trennung von Spezifikation undImplementierung (→ logische Datenunabhangigkeit)
Vorlesung Datenbanken II – SS 2006 17
Universitat Bielefeld Einleitung/MotivationGrenzen relationaler Modelle
Objekt-orientierte Datenmodelle
3.3 Kriterien fur OODBS
Notwendige Eigenschaften (Fortsetzung):4 Typen- und Klassen:
Typ: gemeinsame Eigenschaften/VerhaltenKlasse: Object factory (generiert neue Objekte)
Objekt warehouse (Extension einer Klasse)
→ Klassen konnen zur Laufzeit manipuliert werden→ dynamisches Binden notwendig
Vorlesung Datenbanken II – SS 2006 18
Universitat Bielefeld Einleitung/MotivationGrenzen relationaler Modelle
Objekt-orientierte Datenmodelle
3.3 Kriterien fur OODBS
Notwendige Eigenschaften (Fortsetzung):5 Klassen- und Typhierarchien (Vererbung):
I Substitution (Operationen ubertragen)I Inklusion (Klassifikation, basiert auf Struktur)I Constraint (Struktur + Bedingungen)I Spezialisierung (instanzbasiert, spezifischere
Informationen)
Vorlesung Datenbanken II – SS 2006 19
Universitat Bielefeld Einleitung/MotivationGrenzen relationaler Modelle
Objekt-orientierte Datenmodelle
3.3 Kriterien fur OODBS
Notwendige Eigenschaften (Fortsetzung):6 Dynamisches Binden / Overloading
7 Computational completeness (berechnungsvollstandig)
8 Erweiterbarkeit (Typen/Domanen)
9 Persistenz
10 Secondary storage management, Indexmanagement
11 Concurrency (→Mehrbenutzerbetrieb)
12 Recovery (Ausfallsicherheit)
Vorlesung Datenbanken II – SS 2006 20
Universitat Bielefeld Einleitung/MotivationGrenzen relationaler Modelle
Objekt-orientierte Datenmodelle
3.3 Kriterien fur OODBS
Notwendige Eigenschaften (Fortsetzung):13 Ad hoc Anfragesprache
I HochspracheI Effizenz, OptimierbarkeitI anwendungsunabhangigI anwenbar auf jede DB (inkl. benutzerdefinierte Typen)
Vorlesung Datenbanken II – SS 2006 21