Objektorientierte Datenbanken Vorlesung 1 Sebastian Iwanowski FH Wedel

OODB 1 Slide 1

Organisatorisches Vorlesung Mittwochs, 09:30 – 10:45 Raum HS4

Übung Dienstags, 09:30 – 10:45 (erstmalig am 12.04.) betreut von Christine Apfel, Julia Drowatzky, Jan-Oliver Steinbach Raum RZ1 Anmeldung über https://ssl.fh-wedel.de/uebanmeldung/anmeldung Praktische Aufgaben zum Vorlesungsstoff Beantworten von Fragen OODB 1 Slide 2

Inhaltlicher Umfang dieser Vorlesung Inhaltliche Voraussetzungen: Datenbanken, Objektorientierte Programmierung (Java)

Lernziele dieser Vorlesung: Grundprinzipien von OODBs Einsatz von OODBs für praktische Anwendungen Überblick über die gängigen Standards und Techniken Zusammenspiel objektorientierter Programmierung mit Datenbanken

kein Lernziel dieser Vorlesung: Implementierung von OODBs OODB 1 Slide 3

Vorlesungsaufbau Inhalte: Motivation und Überblick Grundlegende Konzepte: Persistenz, Transaktionen, Anfragen ODMG-Standard JDO-Standard Anbindungsmöglichkeiten von relationalen Datenbanken an objektorientierte Programmierumgebungen

Material zu dieser Vorlesung: www.fh-wedel.de/~iw/Lehrveranstaltungen/SS2005/OODB.html

alte Vorlesung: www.fh-wedel.de/~iw/Lehrveranstaltungen/SS2004/OODB.html Literatur (in Folgenden genannt) OODB 1 Slide 4

Literatur für den allgemeinen Kontext Andreas Geppert: Objektrelationale und objektorientierte Datenbankkonzepte und -systeme, dpunkt.verlag 2002, ISBN 3-89864-124-4

Andreas Heuer: Objektorientierte Datenbanken Konzepte, Modelle, Standards und Systeme, Addison Wesley 1997 (2. Auflage), ISBN 3-89319-800-8

Alfons Kemper / Andre Eickler: Datenbanksysteme Eine Einführung, Oldenbourg 2004 (5. Auflage), ISBN 3-486-27392-2 In unserer Bibliothek: Oldenbourg 2001 (4. Auflage), ISBN 3-486-25706-4

Andreas Meier / Thomas Wüst: Objektorientierte und objektrelationale Datenbanken Ein Kompaß für die Praxis, dpunkt.verlag 2000, ISBN 3932588-68-1 OODB 1 Slide 5

Literatur für die Schwerpunkte dieser Vorlesung Richard G.G. Cattell / Douglas K. Barry (Edts.): The Object Data Standard: ODMG 3.0, Morgan Kaufmann, ISBN 1-55860-647-4 David Jordan / Craig Russell: Java Data Objects, O'Reilly 2003, ISBN 0-596-00276-9 Robin Roos: Java Data Objects, Addison-Wesley 2002, ISBN 0-321-12380-8 Arno Schmidhauser: Skript JDO, Hochschule für Technik und Architektur (HTA) Bern

OODB 1 Slide 6

… und nun geht es los: erst einmal mit Datenbanken

OODB 1 Slide 7

Warum Datenbanken ? Ziele von Datenbanken: •Permanente Sicherung von Daten zum Zweck der Wiederverwendung •Vereinigung des Wissens mehrerer Benutzer und Programme •Schutz vor unautorisiertem Zugriff auf Daten •Exakt definierte Datenformate und Zugriffsmöglichkeiten

Was kann beim Verfolgen dieser Ziele ohne Datenbanken passieren ? •Verlust von Daten •Redundanz und Inkonsistenz •Probleme beim Mehrbenutzerbetrieb •Integritätsverletzung •Sicherheitsprobleme •hohe Entwicklungskosten für Anwendungsprogramme •beschränkte Zugriffsmöglichkeiten OODB 1 Slide 8

Wie sind Datenbanken aufgebaut ? konzeptionelle Sicht

Datenmodell

ER-Modell (ER=Entity Relationship)

logische Sicht

Relationales Datenmodell

physische Sicht

Konkrete Speicherplätze

(oder anderes Modell)

Datenmanipulationssprache (DML)

Zum Definieren, Abfragen und Ändern eines Datenbestandes für ein relationales Datenmodell

SQL

OODB 1 Slide 9

Konzeptionelle Sicht: Beispiel für ein ER-Modell MatrNr Name

Studenten

voraussetzen NachVorgänger folger hören Vorlesungen

SWS Titel

Semester Note

lesen

prüfen

PersNr Name

VorlNr

Rang Assistenten

arbeitenFür

Fachgebiet

Professoren PersNr

OODB 1 Slide 10

Name

Raum

Logische Sicht: Ausschnitt eines relationalen Modells Professoren

lesen 1

N

Professoren

Vorlesungen

Vorlesungen

PersNr

Name

Rang

Raum

VorlNr

Titel

2125

Sokrates

C4

226

5001

Grundzüge

4

2137

2126

Russel

C4

232

5041

Ethik

4

2125

2127

Kopernikus

C3

310

5043

Erkenntnistheorie

3

2126

2133

Popper

C3

52

5049

Mäeutik

2

2125

2134

Augustinus

C3

309

2136

Curie

C4

36

4052

Logik

4

2125

2137

Kant

C4

7

5052

Wissenschaftstheorie

3

2126

5216

Bioethik

2

2126

5259

Der Wiener Kreis

2

2133

5022

Glaube und Wissen

2

2134

4630

Die 3 Kritiken

4

2137

OODB 1 Slide 11

SWS Gelesen Von

Anfragen an die Datenbank Anfragen können Informationen aus beliebigen Tabellen verknüpfen: PersNr 2125 2126

2137

Professoren Name Rang Sokrates C4 Russel C4

Kant

C4

Vorlesungen Titel SWS Grundzüge 4 Ethik 4

Raum 226 232

VorlNr 5001 5041

gelesen Von 2137 2125

7

5049

Mäeutik

2

2125

4630

Die 3 Kritiken

4

2137

Welcher Professor liest "Mäeutik"? select Name, Titel

SQL-Anfrage

from Professoren, Vorlesungen where PersNr = gelesenVon and Titel = 'Mäeutik';

Die Bearbeitung verknüpfter Anfragen kann zeitaufwändig sein ! OODB 1 Slide 12

PersNr 2125 2126

2137

Professoren Name Rang Sokrates C4 Russel C4

Kant

C4

JOIN

Vorlesungen Titel SWS Grundzüge 4 Ethik 4

Raum 226 232

VorlNr 5001 5041

gelesen Von 2137 2125

7

5049

Mäeutik

2

2125

4630

Die 3 Kritiken

4

2137

Verknüpfung: jeder mit jedem PersNr 2125

Name Sokrates

Rang C4

Raum 226

VorlNr 5001

Titel Grundzüge

SWS 4

gelesen Von 2137

1225

Sokrates

C4

226

5041

Ethik

4

2125

2125

Sokrates

C4

226

5049

Mäeutik

2

2125

2126 2126

Russel Russel

C4 C4

232 232

5001 5041

Grundzüge Ethik

4 4

2137 2125

2137

Kant

C4

7

4630

Die 3 Kritiken

4

2137

SELECTION PersNr 2125

Auswahl von Zeilen Name Sokrates

Rang C4

Raum 226

VorlNr 5049

Titel Mäeutik

SWS 2

Auswahl von Spalten

PROJECTION Name Sokrates

Titel Mäeutik

OODB 1 Slide 13

gelesen Von 2125

Achtung: Übertragung aus ER-Modell darf nicht beliebig sein ! lesen

Professoren

1 Z.B. NICHT so:

Vorlesungen

N Vorlesungen VorlNr

Titel

SWS

5001

Grundzüge

4

5041

Ethik

4

Professoren PersNr

Name

Rang

Raum

liest

2125

Sokrates

C4

226

5041

5043

Erkenntnistheorie

3

2125

Sokrates

C4

226

5049

5049

Mäeutik

2

2125

Sokrates

C4

226

4052

4052

Logik

4

...

...

...

...

...

5052

Wissenschaftstheorie

3

5216

Bioethik

2

5259

Der Wiener Kreis

2

5022

Glaube und Wissen

2

4630

Die 3 Kritiken

4

2134 2136

Augustinus Curie

C3 C4

309 36

5022 ??

OODB 1 Slide 14

Anomalien durch Verletzung von Normalformen Vorlesungen

Professoren PersNr

Name

Rang

Raum

liest

2125

Sokrates

C4

226

5041

2125

Sokrates

C4

226

5049

2125

Sokrates

C4

226

4052

VorlNr

Titel

SWS

5001

Grundzüge

4

5041

Ethik

4

5043

Erkenntnistheorie

3

5049

Mäeutik

2

4052

Logik

4

5052

Wissenschaftstheorie

3

5216

Bioethik

2

...

...

...

...

...

2134

Augustinus

C3

309

5022

5259

Der Wiener Kreis

2

2136

Curie

C4

36

??

5022

Glaube und Wissen

2

4630

Die 3 Kritiken

4

Aktualisierungs-Anomalie: Was passiert wenn Sokrates umzieht ? Lösch-Anomalie: Was passiert wenn „Glaube und Wissen“ wegfällt ? Einfügeanomalie: Curie ist neu und liest noch keine Vorlesungen OODB 1 Slide 15

So sollte es stattdessen gemacht werden: Studenten

Professoren

Vorlesungen

PersNr

Name

Rang

Raum

MatrNr

Name

Semester

2125

Sokrates

C4

226

24002

Xenokrates

18

2126

Russel

C4

232

25403

Jonas

12

2127

Kopernikus

C3

310

26120

Fichte

10

2133

Popper

C3

52

26830

Aristoxenos

8

2134

Augustinus

C3

309

27550

Schopenhauer

6

2136

Curie

C4

36

28106

Carnap

3

2137

Kant

C4

7

29120

Theophrastos

2

29555

Feuerbach

2

voraussetzen Vorgänger

Nachfolger

5001

5041

5001 5001

hören MatrNr

VorlNr

5043

26120

5001

5049

27550

5001

5216

27550

4052

5043

5052

28106

5041

5041

5052

28106

5052

5052

5259

28106

5216

28106

5259

29120

5001

5041

prüfen MatrNr

VorlNr

PersNr

Note

29120

5041

28106

5001

2126

1

29120

5049

25403

5041

2125

2

29555

5022

27550

4630

2137

2

25403

5022

VorlNr

Titel

SWS

gelesenVon

5001

Grundzüge

4

2137

5041

Ethik

4

2125

5043

Erkenntnistheorie

3

2126

5049

Mäeutik

2

2125

4052

Logik

4

2125

5052

Wissenschaftstheorie

3

2126

5216

Bioethik

2

2126

5259

Der Wiener Kreis

2

2133

5022

Glaube und Wissen

2

2134

4630

Die 3 Kritiken

4

2137

Assistenten PerslNr

Name

Fachgebiet

Boss

3002

Platon

Ideenlehre

2125

3003

Aristoteles

Syllogistik

2125

3004

Wittgenstein

Sprachtheorie

2126

3005

Rhetikus

Planetenbewegung

2127

3006

Newton

Keplersche Gesetze

2127

3007

Spinoza

Gott und Natur

2126

effiziente Darstellung, aber unübersichtlich ! OODB 1 Slide 16

Daraus resultierender Nachteil: Navigierende Zugriffe sind umständlich Welche Vorlesungen müssen für „Der Wiener Kreis“ gehört worden sein ? Vorlesungen

voraussetzen Vorgänger

Nachfolger

5001

5041

5001

5043

5001

5049

5041

5216

5043

5052

5041

5052

5052

5259

VorlNr

Titel

SWS

gelesenVon

5001

Grundzüge

4

2137

5041

Ethik

4

2125

5043

Erkenntnistheorie

3

2126

5049

Mäeutik

2

2125

4052

Logik

4

2125

5052

Wissenschaftstheorie

3

2126

5216

Bioethik

2

2126

5259

Der Wiener Kreis

2

2133

5022

Glaube und Wissen

2

2134

4630

Die 3 Kritiken

4

2137

select pred1.Titel, pred2.Titel, pred3.Titel from Vorlesungen this, Vorlesungen pred1, Vorlesungen pred2, Vorlesungen pred3, voraussetzen pred1pt, voraussetzen pred2pt, voraussetzen pred3pt where this.Titel = 'Der Wiener Kreis' and this.VorlNr = pred1pt.Nachfolger and pred1pt.Vorgänger = pred1.VorlNr and pred1pt.Vorgänger = pred2pt.Nachfolger and pred2pt.Vorgänger = pred2.VorlNr and pred2pt.Vorgänger = pred3pt.Nachfolger and pred3pt.Vorgänger = pred3.VorlNr;

SQL-Antwort: 'Wissenschaftstheorie',

'Erkenntnistheorie', 'Ethik', 'Grundzüge' OODB 1 Slide 17

SQL-Anfrage (nur bis zum 3. Vorgänger, allgemein nicht möglich!)

„Zersplitterung“ durch Beachtung der Normalformen: Pointierte Darstellung

Die relationale Modellierung entspricht folgendem:

Bevor ein Auto in der Garage abgestellt werden kann, muss es in seine tausend Einzelteile zerlegt und in den dafür vorgesehenen Fächern ablegt werden. Bevor es wieder benutzt werden kann, ist ein komplizierter Zusammenbau erforderlich.

OODB 1 Slide 18

Bewertung relationaler Datenbanken Vorteile: •Viele komplexe Zusammenhänge können erfragt werden •Aufbau, Pflege und Wartung erfordern keine Programmierkenntnisse

Nachteile: •Komplexe Anfragen kosten unverhältnismäßig viel Zeit •ER-Modell kann nicht leicht in ein relationales Modell übertragen werden

Fazit: •RDBs eignen sich für seltene aber komplexe Anfragen •Der Aufbau von RDBs erfordert wenig technisches aber viel logisches Denkvermögen

OODB 1 Slide 19

Themenwechsel: Objektorientierte Programmierung

OODB 1 Slide 20

Warum objektorientierte Programmierung ? Ziele von objektorientierter Programmierung: •Erstellen großer Programmsysteme mit komplexen Wechselwirkungen •Vereinfachung einer nachträglichen Erweiterung der Software

Allgemeingültige objektorientierte Konzepte: •Datengetriebene Modellierung

vereinfacht lokale Modellierung

•Vererbung

vereinfacht nachträgliche Veränderung

•Datenkapselung durch Methodenzugriff

schützt vor Seiteneffekten

Was kann passieren, wenn diese Konzepte nicht beachtet werden ? •Unübersichtlicher und damit schwer verifizierbarer Programmcode •Bei einer Erweiterung muss der gesamte Code verändert werden. •Unerwünschte Seiteneffekte bei Datenmanipulation OODB 1 Slide 21

Aufbau eines Objekts allgemein:

Realisierung in Java:

Klasse erweitert Superklasse

class Professoren extends Angestellte

Attribut wert1 Attribut wert2 . . Beziehung Objekt1 Beziehung Objekt2 . . Methode Funktion1 (...) Methode Funktion2 (...) . .

{ String rang; int raum;

In Java keine syntaktische Unterscheidung zwischen Attribut und Beziehung

Collection liest; // Vorlesungen Collection beschaeftigt; // Assistenten Collection leitet; // Pruefungen int gehalt (); float notendurchschnitt (); int lehrstundenzahl (); void attachVorlesung (Vorlesungen vorlesung) }

Generalisierung

Generalisierung

Spezialisierung

Spezialisierung OODB 1 Slide 22

Vererbung Uni-Mitglieder

Name

Generalisierung

Spezialisierung

is-a Studenten

Angestellte

PersNr

is-a

MatrNr

Rang Fachgebiet

Assistenten

Professoren Raum

OODB 1 Slide 23

Noch einmal das ER-Modell von vorhin MatrNr Name

Studenten

voraussetzen NachVorgänger folger hören Vorlesungen

SWS Titel

Semester Note

lesen

prüfen

PersNr Name

VorlNr

Rang Assistenten

arbeitenFür

Fachgebiet

Professoren PersNr

OODB 1 Slide 24

Name

Raum

ER-Modell plus Vererbung MatrNr Name

Studenten

voraussetzen NachVorgänger folger Vorlesungen hören

VorlNr SWS Titel

Semester Note

prüfen

lesen

Fachgebiet

Rang Assistenten

arbeitenFür is-a

PersNr Name

Angestellte OODB 1 Slide 25

Professoren

Raum

UML-Notation für Beziehungen

Komposition

OODB 1 Slide 26

Objektmodell in UML-Notation + H ö re r

+ M a tr N r : in t + N a m e : S tr in g + S e m e s te r : in t

+ N a c h fo lg e r

1 ..*

*

V o r le s u n g e n

h ö re n

+ N o te n s c h n itt( ) : flo a t + S u m m e W o c h e n s tu n d e n ( ) : s h o r t 1

v o r a u s s e tz e n

+ P r ü flin g

+ V o r lN r : in t + T ite l : S tr in g + S W S : in t

*

+ A n z H ö r e r ( ) : in t + D u r c h fa llQ u o te ( ) : flo a t

P rü fu n g e n

+ N o te : D e c im a l + D a tu m : D a te

*

*

1

*

*

+ P r ü fu n g s s to ff gelesenVon

S tu d e n te n

+ v e r s c h ie b e n ( ) *

1

+ P r ü fe r P ro fe s s o re n

A s s is t e n t e n

+Boss

+ F a c h g e b ie t : S tr in g

+ G e h a lt( ) : s h o r t

*

a r b e ite n F ü r

1

+ R a n g : S tr in g

+ N o te n s c h n itt( ) : flo a t + G e h a lt( ) : s h o r t + L e h r s tu n d e n z a h l( ) : s h o r t

A n g e s t e llt e

+ P e r s N r : in t + N a m e : S tr in g

+ G e h a lt( ) : s h o r t

OODB 1 Slide 27

1 +D ozent

Synthese: Wie bringen wir beides zusammen ?

OODB 1 Slide 28

Gemeinsamkeiten bei der Modellierung

Konzeptionelles Modell (ER-Modell)

Objektorientiertes Modell

Relationales Modell

OODB 1 Slide 29

Unterschiede bei der Modellierung A

B

Konzeptionelles Modell (ER-Modell)

Objektorientiertes Modell

Relationales Modell C Man kann aus einem ER-Modell A ein objektorientiertes Modell B derart gewinnen, dass A aus B eindeutig rekonstruiert werden kann. Man kann aus einem ER-Modell A kein relationales Modell C gewinnen, so dass A aus C eindeutig rekonstruiert werden kann Î im relationalen Modell geht Strukturinformation verloren ! OODB 1 Slide 30

Beispiel für ein ER-Modell A:

voraussetzen Nachfolger Vorgänger

MatrNr Name

Studenten

hören

Vorlesungen

SWS Titel

Semester

Note

lesen

prüfen

PersNr Name

VorlNr

Rang Assistenten

arbeitenFür

Fachgebiet

Professoren PersNr

OODB 1 Slide 31

Name

Raum

Konvertierung von A in ein relationales Modell C: Studenten

Professoren

Vorlesungen

PersNr

Name

Rang

Raum

MatrNr

Name

Semester

2125

Sokrates

C4

226

24002

Xenokrates

18

2126

Russel

C4

232

25403

Jonas

12

2127

Kopernikus

C3

310

26120

Fichte

10

2133

Popper

C3

52

26830

Aristoxenos

8

2134

Augustinus

C3

309

27550

Schopenhauer

6

2136

Curie

C4

36

28106

Carnap

3

2137

Kant

C4

7

29120

Theophrastos

2

29555

Feuerbach

2

voraussetzen Vorgänger

Nachfolger

5001

5041

5001 5001

hören MatrNr

VorlNr

5043

26120

5001

5049

27550

5001

5216

27550

4052

5043

5052

28106

5041

5041

5052

28106

5052

5052

5259

28106

5216

28106

5259

29120

5001

5041

prüfen MatrNr

VorlNr

PersNr

Note

29120

5041

28106

5001

2126

1

29120

5049

25403

5041

2125

2

29555

5022

27550

4630

2137

2

25403

5022

Nicht erkennbar aus Relationen:

VorlNr

Titel

SWS

gelesenVon

5001

Grundzüge

4

2137

5041

Ethik

4

2125

5043

Erkenntnistheorie

3

2126

5049

Mäeutik

2

2125

4052

Logik

4

2125

5052

Wissenschaftstheorie

3

2126

5216

Bioethik

2

2126

5259

Der Wiener Kreis

2

2133

5022

Glaube und Wissen

2

2134

4630

Die 3 Kritiken

4

2137

Assistenten PerslNr

Name

Fachgebiet

Boss

3002

Platon

Ideenlehre

2125

3003

Aristoteles

Syllogistik

2125

3004

Wittgenstein

Sprachtheorie

2126

3005

Rhetikus

Planetenbewegung

2127

3006

Newton

Keplersche Gesetze

2127

3007

Spinoza

Gott und Natur

2126

Werden Studenten von Assistenten oder Professoren geprüft ? Was hat „voraussetzen“ mit „Vorlesungen“ zu tun ?

OODB 1 Slide 32

Weiterer Unterschied: „Impedance Mismatch“

Programmiersprachen allgemein: Geschaffen für die häufige Durchführung einfacher Operationen

Datenbanken allgemein: Geschaffen für die seltene Durchführung komplexer Operationen

OODB 1 Slide 33

Zusammenfassung: Probleme relationaler Datenbanktechnologie •

Zwar methodisch saubere aber schwierig zu lernende manuelle Umsetzung des Entwurfsmodells (ERM) in das Implementierungsmodell



Zersplitterung von „zusammengehörigen Daten“ durch Normalisierung



Joins bei navigierendem Zugriff sehr aufwendig



Probleme bei Änderung des Datenmodells wegen fehlender Kapselung



Impedance Mismatch

OODB 1 Slide 34

Noch offene Frage: Wie können wir objektorientiert modellieren und dennoch eine Datenbank benutzen ?

Wir nähern uns der Antwort beim nächsten Mal !

OODB 1 Slide 35