• Keine Ergebnisse gefunden

Fundamente und Grundprinzipien von OODBen

N/A
N/A
Protected

Academic year: 2022

Aktie "Fundamente und Grundprinzipien von OODBen"

Copied!
47
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Objektorientierte Datenbanken

 Voraussetzungen:

 Datenbanken, Programmiersprachen

 Lernziele allgemein:

 Fundamente und Grundprinzipien von OODBen

 Systematische Entwicklung von Programmen

 Organisation:

 Vorlesung

 Übung

Ralf Möller, FH-Wedel

(2)

Übung

 Ziel:

 Vertiefung des Vorlesungsstoffes ...

 ... durch Lösen von Aufgaben

 ... durch Beantwortung von Fragen

 Durchführung: Christine Apfel, Katrin Fitz

 Termin: Mi, 8.00 Uhr

 Ort: RZ?

 Beginn: 16.4.03

(3)

Literatur, Details und Zusatzinformationen

Präsentationen: http://www.fh-wedel.de/~mo/lectures/oodb-sose -03.html

Literatur:

Weitere Literatur wird noch bekanntgegeben...

(4)

Weitere Literatur und Danksagung

 A. Kemper, A. Eickler,

Datenbanksysteme: Eine Einführung

 Diese Vorlesung basiert auf

Präsentations- material zu

diesem Buch

(5)

Überblick über die Vorlesung

 Grundlagen relationaler Datenbanken

ER-Modellierung, Relationales Datenmodell, SQL

Transaktionen, Integrität, Probleme relationaler Datenbanktechnologie

 Objektorientierte Modellierung (Entwurf)

Statische Aspekte: Objektidentiät, Typen, Klassen, Persistenzmodelle

Dynamische Aspekte: Nachrichten, Methoden

 Java Data Objects - JDO (Implementierung)

Erzeugen persistenter Objekte, Transaktionen

Methodenimplementierungen in Java, Anfragen in JDOQL

Sicherung von Integritätsbedingungen, Schema-Evolution

(6)

Überblick über die Vorlesung (2)

 ODMG-Standard

 Object Definition Language

 Object Query Language, Sprachanbindung (Java)

 Aspekte objektorientierter Datenmodelle in anderen Datenmodellen

 PL/SQL

 RDF/DAML+OIL

(7)

Motivation für Datenbank-Verwaltungssysteme

Typische Probleme bei Informationsverarbeitung ohne DBMS

 Redundanz und Inkonsistenz

 Beschränkte Zugriffsmöglichkeiten

 Probleme beim Mehrbenutzerbetrieb

 Verlust von Daten

 Integritätsverletzung

 Sicherheitsprobleme

 hohe Entwicklungskosten für Anwendungsprogramme

(8)

Die Abstraktionsebenen eines Datenbanksystems

Datenunabhängigkeit:

• physische Unabhängigkeit

• logische Datenunabhängigkeit

Physische Ebene Logische Ebene

Sicht1 Sicht 2 ... Sicht 3

(9)

Datenmodellierung

Relationales

Schema Objektorientiertes

Schema Konzeptuelles Schema

(ER-Schema)

Manuelle/intellektuelle Modellierung

Halbautomatische Transformation

Ausschnitt der Realen Miniwelt

...

(10)

Modellierung einer kleinen Beispielanwendung

Studenten

Vorlesungen Professoren Reale Welt: Universität

PersNr MatrNr

Name Studenten Professoren Name

hören lesen

Vorlesungen Titel VorlNr Konzeptuelle Modellierung

(11)

Logische Datenmodelle

 Relationales Datenmodell

 Objektorientiertes Datenmodell

 Deduktives Datenmodell

 ...

(12)

Das relationale Datenmodell

Studenten MatrNr Name

26120 25403

...

Fichte Jonas

...

hören

MatrNr VorlNr 25403

26120 ...

5022 5001

...

Vorlesungen

VorlNr Titel

5001 5022

...

Grundzüge

Glaube und Wissen ...

Select Name

From Studenten, hören, Vorlesungen

Where Studenten.MatrNr = hören.MatrNr and hören.VorlNr = Vorlesungen.VorlNr and Vorlesungen.Titel = `Grundzüge´;

update Vorlesungen

set Titel = `Grundzüge der Logik´

where VorlNr = 5001;

(13)

Logdateien Indexe Datenbasis Datenwörterbuch Dateiverwaltung

Mehrbenutzersynchr.

Fehlerbehandlung

Datenbankmanager Schemaverwaltung Anfragebearbeitung DBMS

DML-Compiler DDL-Compiler

Anwendung Interaktive Anfrage

Verwaltungs- werkzeug Präcompiler

„Naive“

Benutzer

Fortgeschrittene Benutzer

Anwendungs- Programmierer

Datenbank- administratoren

Hintergrundspeicher

Architekturübersicht

(14)

Datenbankentwurf

Abstraktionsebenen des Datenbankentwurfs 1. Konzeptuelle Ebene

2. Implementationsebene

3. Physische Ebene

(15)

Entity/Relationship-Modellierung

 Entity (Gegenstandstyp)

 Relationship (Beziehungstyp)

 Attribut (Eigenschaft)

 Schlüssel (Identifikation)

 Rolle

Studenten

Vorlesungen

hören

VorlNr Titel SWS

MatrNr Name Semester

Hörer

Lehrveranstaltung

(16)

Studenten

Assistenten MatrNr

PersNr Semester

Name

Name Fachgebiet

Note

hören

prüfen

arbeitenFür Professoren Vorlesungen

lesen voraussetzen

SWS VorlNr

Titel

Raum Rang

PersNr

Nach- folger Vorgänger

Name

Universitätsschema

(17)

Funktionalitäten

E1 ... R ... E2

R E

1

x E

2

1:N

N:M

E1 E2

1:1

N:1

(18)

Funktionalitäten bei n - stelligen Beziehungen

E1

En E2

Ek R

P

M N

1

R : E1 x ... x Ek-1 x Ek+1 x ... x En Ek

(19)

Beispiel-Beziehung: betreuen

Studenten betreuen

Note

Seminarthemen Professoren 1

1 N

betreuen : Professoren x Studenten  Seminarthemen

betreuen : Seminarthemen x Studenten  Professoren

(20)

Dadurch erzwungene Konsistenzbedingungen

1. Studenten dürfen bei demselben Professor bzw. derselben

Professorin nur ein Seminarthema "ableisten" (damit ein breites Spektrum abgedeckt wird).

1. Studenten dürfen dasselbe Seminarthema nur einmal bearbeiten – sie dürfen also nicht bei anderen Professoren ein schon einmal

erteiltes Seminarthema nochmals bearbeiten.

Folgende Datenbankzustände nach wie vor möglich:

Professoren können dasselbe Seminarthema „wiederverwenden“ – also dasselbe Thema auch mehreren Studenten erteilen.

Ein Thema kann von mehreren Professoren vergeben werden – aber an unterschiedliche Studenten.

(21)

Studenten

Assistenten MatrNr

PersNr Semester

Name

Name Fachgebiet

Note

hören

prüfen

arbeitenFür Professoren Vorlesungen

lesen voraussetzen

SWS VorlNr

Titel

Raum Rang

PersNr

Nach- folger Vorgänger

Name

Funktionalitäten

1 N

1 1

N N

N

M

M M

N

(22)

(Min, Max)-Notation

E2

R E1 x ... x Ei x ... x En E1

En

Ek R

(min1 max1)

(min2, max2)

(mini, maxi) (minn, maxn)

Für jedes ei  Ei gibt es

•Mindestens mini Tupel der Art (..., ei, ...) und

•Höchstens maxi viele Tupel der Art (..., ei, ...) R

(23)

Komplex-strukturierte Entities

Polyeder Hülle Flächen

Begrenzung

Kanten

StartEnde

Punkte

PolyID

FlächenID

KantenID X

Y Z 1

N N

M N M

Beispiel- Polyeder

(24)

Komplex-strukturierte Entities

Polyeder Hülle Flächen

Begrenzung

Kanten

StartEnde

Punkte

PolyID

FlächenID

KantenID X

Y Z 1

N N

M N M

(4, ) (1,1)

(3, ) (2, 2) (2, 2) (3, )

Beispiel- Polyeder

(25)

Schwache, existenzabhängige Entities

Gebäude liegt_in Räume

Höhe GebNr

Größe RaumNr

1 N

Beziehung zwischen "starken" und schwachem Typ ist immer 1:N (oder 1:1 in seltenen Fällen)

Warum kann das keine N:M-Beziehung sein?

RaumNr ist nur innerhalb eines Gebäudes eindeutig

Schlüssel ist: GebNr und RaumNr

(26)

Prüfungen als schwacher Entitytyp

Studenten 1 ablegen N Prüfungen Note PrüfTeil MatrNr

Vorlesungen umfassen VorlNr

abhalten

Professoren

PersNr

N N

M M

Mehrere Prüfer in einer Prüfung

Mehrere Vorlesungen werden in einer Prüfung abgefragt

(27)

Generalisierung

MatrNr

Uni-Mitglieder is-a

Studenten

Assistenten

is-a

Professoren Fachgebiet

Name

Angestellte PersNr

Raum Rang

(28)

Studenten MatrNr

Semester

Name hören Vorlesungen

voraussetzen

SWS VorlNr

Titel Nach-

folger Vorgänger

Note prüfen lesen

Name Fachgebiet

Assistenten arbeitenFür Professoren

Raum Rang

is-a

Angestellte PersNr

(0,*) (3,*)

(0,*) (0,*)

(0,*) (0,*) (1,1)

(1,1)

(0,*) (0,*)

(0,*)

Universitätsschema

(29)

Aggregation

Fahrräder

Teil-von Teil-von

Rahmen Räder

Teil-von Teil-von Teil-von Teil-von

Rohre Lenker Felgen Speichen

... ... ... ...

(30)

...

Rohre

... ... ...

Fahrräder

Teil-von Teil-von

Rahmen Räder

Teil-von Teil-von Teil-von Teil-von

Lenker Felgen Speichen

Segler Motorräder Automobile

is-a is-a

Unmot.-Fahrzeuge mot.-Fahrzeuge

is-a Fahrzeuge

Aggregation und

Generalisierung

(31)

Drei Sichten einer Universitäts-Datenbank

Studenten

Assistenten

Professoren

erstellen

verfassen

bewerten

betreuen

Diplomarbeiten

Dissertationen Titel

Titel

Sicht 1: Erstellung von Dokumenten als Prüfungsleistung

(32)

Signatur Bibliotheken

UniMitglieder

besitzen

Dokumente

Autoren Titel

Jahr entleihen

leiten

Datum Fakultät

Sicht 2: Bibliotheksverwaltung

Drei Sichten einer Universitäts-Datenbank

(33)

Vorlesungen

Dozenten

Bücher

Titel Jahr

Verlag empfehlen

Autoren

Sicht 3: Buchempfehlungen für Vorlesungen

Drei Sichten einer Universitäts-Datenbank

(34)

Studenten

Assistenten MatrNr

PersNr Semester

Name

Name Fachgebiet

Note

hören

prüfen

arbeitenFür Professoren Vorlesungen

lesen voraussetzen

SWS VorlNr

Titel

Raum Rang

PersNr

Nach- folger Vorgänger

Name

Uni-Schema

1 N

1 1

N N

N

M

M M

N

(35)

Relationale Darstellung von Entitytypen

Studenten: {[MatrNr:integer, Name: string, Semester: integer]}

Vorlesungen: {[VorlNr:integer, Titel: string, SWS: integer]}

Professoren: {[PersNr:integer, Name: string, Rang: string, Raum: integer]}

Assistenten: {[PersNr:integer, Name: string, Fachgebiet: string]}

(36)

Relationale Darstellung von Beziehungen

A11 E1

R

... AR1

En

E2 An1

A21

... ...

...

...

1k1 A

R kR A

nkn 2 A

2k A

43 42

1 43

42 1

43 42

43 1 42

1

R von Attribute

1 E

von Schlüssel

1 E

von Schlüssel

2 21

E von Schlüssel

1

11

,...., , ,..., ,..., ,..., , ,...,

2 n 2 1

1

R k R

nk n

k

k

A A A A

n

A A

R

A

R:{[ A ]}

(37)

Beziehungen unseres Beispiel-Schemas

hören : {[MatrNr: integer, VorlNr: integer]}

lesen : {[PersNr: integer, VorlNr: integer]}

arbeitenFür : {[AssistentenPersNr: integer, ProfPersNr:

integer]}

voraussetzen : {[Vorgänger: integer, Nachfolger: integer]}

prüfen : {[MatrNr: integer, VorlNr: integer, PersNr: integer, Note: decimal]}

(38)

Schlüssel der Relationen

hören : {[MatrNr: integer, VorlNr: integer]}

lesen : {[PersNr: integer, VorlNr: integer]}

arbeitenFür : {[AssistentenPersNr: integer, ProfPersNr:

integer]}

voraussetzen : {[Vorgänger: integer, Nachfolger: integer]}

prüfen : {[MatrNr: integer, VorlNr: integer, PersNr: integer, Note: decimal]}

(39)

Ausprägung der Beziehung hören

Studenten MatrNr ...

26120 ...

27550 ...

... ...

hören

MatrNr VorlNr 26120 5001

27550 5001

27550 4052

28106 5041

28106 5052

28106 5216

28106 5259

29120 5001 29120 5041

29120 5049

29555 5022

25403 5022

29555 5001

Vorlesungen VorlNr ...

5001 ...

4052 ...

... ...

Studenten

hören

M

Vorlesungen

N

MatrNr VorlNr

(40)

Verfeinerung des relationalen Schemas

1:N-Beziehung

Initial-Entwurf

Vorlesungen : {[VorlNr, Titel, SWS]}

Professoren : {[PersNr, Name, Rang, Raum]}

lesen: {[VorlNr, PersNr]}

Professoren lesen Vorlesungen

1 N

(41)

Verfeinerung des relationalen Schemas

1:N-Beziehung

Initial-Entwurf

Vorlesungen : {[VorlNr, Titel, SWS]}

Professoren : {[PersNr, Name, Rang, Raum]}

lesen: {[VorlNr, PersNr]}

Verfeinerung durch Zusammenfassung

Vorlesungen : {[VorlNr, Titel, SWS, gelesenVon]}

Professoren : {[PersNr, Name, Rang, Raum]}

Regel

Relationen mit gleichem Schlüssel kann man zusammenfassen aber nur diese und keine anderen!

(42)

Ausprägung von Professoren und Vorlesung

Professoren

PersNr Name Rang Raum 2125 Sokrates C4 226 2126 Russel C4 232 2127 Kopernikus C3 310 2133 Popper C3 52 2134 Augustinus C3 309

2136 Curie C4 36

2137 Kant C4 7

Vorlesungen

VorlNr Titel SWS Gelesen Von

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

Professoren lesen Vorlesungen

1 N

(43)

Vorsicht: So geht es NICHT

Professoren

PersNr Name Rang Raum liest 2125 Sokrates C4 226 5041 2125 Sokrates C4 226 5049 2125 Sokrates C4 226 4052

... ... ... ... ...

2134 Augustinus C3 309 5022

2136 Curie C4 36 ??

Vorlesungen

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

5259 Der Wiener Kreis 2 5022 Glaube und Wissen 2

4630 Die 3 Kritiken 4

Professoren lesen Vorlesungen

1 N

(44)

Anomalien

Update-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

Professoren

PersNr Name Rang Raum liest

2125 Sokrates C4 226 5041

2125 Sokrates C4 226 5049

2125 Sokrates C4 226 4052

... ... ... ... ...

2134 Augustinus C3 309 5022

2136 Curie C4 36 ??

Vorlesungen

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

5259 Der Wiener Kreis 2 5022 Glaube und Wissen 2

4630 Die 3 Kritiken 4

(45)

Relationale Modellierung der Generalisierung

Fachgebiet Assistenten

Professoren

Raum Rang

is_a Angestellte

PersNr Name

Angestellte: {[PersNr, Name]}

Professoren: {[PersNr, Rang, Raum]}

Assistenten: {[PersNr, Fachgebiet]}

(46)

Zusammenfassung, Kernpunkte

 Grundlagen von Datenbanksystemen

 Aufgaben eines Datenbank-Management-Systems

 Benutzergruppen eines Datenbanksystems

 Architektur eines Datenbanksystems

 Grundlagen relationaler Datenbanksysteme

 Entwurfsebene: Entity-Relationship-Modell

 Implementierungsebene: Das relationale Datenmodell

(47)

Was kommt beim nächsten Mal?

 Anfragesprachen: SQL

 Mehrbenutzerbetrieb und Sperren

 Transaktionen

 Anbindung an Programmiersprachen

 Probleme der relationalen Datenbanktechnologie

Referenzen

ÄHNLICHE DOKUMENTE

Denkbar undankbares Thema Studenten gewahrt privat ver- Geht s da um besseres Essen Krank? Krankenversicherung7 sicherten Studenten gleiche und einen Extra-Handedruck

Unser Hauptanliegen ist es, durch Aktivitäten außerhalb des unmit- telbaren Studienbereiches den Kon- takt zwischen Studenten, Assisten- ten, Professoren und der Wirtschaft

Aus Müllers “Vorrede zum ersten Bande” wird ersichtlich, dass zum Zielpublikum sowohl (Gymnasial-)Professoren und Studenten wie auch gebildete Laien zählten:

PersNr integer references Professoren on delete set null , Note numeric (2,1) check (Note between 0.7 and 5.0), primary key (MatrNr,

PersNr integer references Professoren on delete set null , Note numeric (2,1) check (Note between 0.7 and 5.0), primary key (MatrNr,

PersNr integer references Professoren on delete set null , Note numeric (2,1) check (Note between 0.7 and 5.0), primary key (MatrNr,

• Studenten dürfen dasselbe Seminarthema nur einmal bearbeiten – sie dürfen also nicht bei anderen Professoren ein schon einmal erteiltes Seminarthema nochmals bearbeiten. Es

Die Universität Pisa hat nicht nur durch ihre Professoren Berühmtheit erlangt, sondern auch durch eine Reihe von Studenten, deren Namen in die Geschichte eingegangen