• Keine Ergebnisse gefunden

 Darstellung der Objektstruktur nur über Fremdschlüssel möglich (keine Unterscheidungsmöglichkeiten für Generalisierung und Aggregation)

N/A
N/A
Protected

Academic year: 2022

Aktie " Darstellung der Objektstruktur nur über Fremdschlüssel möglich (keine Unterscheidungsmöglichkeiten für Generalisierung und Aggregation) "

Copied!
1
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Institutsverwaltung

Objekttypen Eigenschaften

Personen Name (bestehend aus Vor- und Nachname)

Adresse (bestehend aus PLZ, Ort, Straße und Hausnummer Hobbies (bestehend aus einer Menge von Hobbies)

Geburtsdatum

Studenten wie Personen - zusätzlich noch Matrikelnummer

Studienfach

Mutter und Vater des Studenten (die wiederum Personen sind)

Zeugnis (bestehend aus einer Menge von Zweitupeln: Fach und Note) Angestellte wie Personen - zusätzlich noch

Arbeitsstelle (bestehend aus dem Namen des Instituts und der Adresse) Gehalt

Vorgesetzter (der wiederum ein Angestellter ist) Hilfsassis-

tenten

wie Studenten und Angestellte - zusätzlich noch betreuter Kurs

Bücher ISBN

Titel

Menge von Autoren

Menge von Versionen (bestehend aus Zweitupeln: Auflage und Jahr) Stichworte (bestehend aus einer Menge von einzelnen Stichworten) Verlag (weiterer Objekttyp)

Zeitschriften- bände

Zeitschrift (weiterer Objekttyp) Bandnummer

Jahr

Menge von Heften (jedes Heft besteht aus einem Zweitupel:

(2)

Institutsverwaltung

Objekttypen Eigenschaften

... Heftnummer, Artikel

... Artikel ist eine Menge von Einzelartikeln

... jeder Einzelartikel besteht aus Titel, einer Menge von Autoren, einer Seitenangabe (von, bis) und einer Menge von Stichworten)

Ausleihob- jekte

sind Bücher oder Zeitschriftenbände, zusätzlich Inventarnummer

Inentarisierungsdatum

Entlei-hungen Entleiher (ein Angesteller oder ein Student) Ausleihobjekt

Ausleihdatum

Geräte Beschreibung des Gerätes Haushalts-

positionen

Geräte oder Angestellte - zusätzlich Etat pro Jahr (Geldbetrag, der für eine bestimmte Haushaltsposition verfügbar ist)

Verlage Name

Adresse (bestehend aus PLZ, Ort, Straße und Hausnummer) Zeitschriften ISSN

Titel

Menge von Herausgebern Verlag

(3)

Zeitschriftenbände Eintrag Zeitschrift Bände Hefte

BandNr Jahr HeftNr Artikel

Titel Autoren Seiten Stichworte

Autor von bis Stichwort

Nachname Vorname

BüL 77 1999 3 Zur Versorgung der

Weltbevölkerung mit Nahrungsenergie vom Ackerland

Köppen Detloff 333 344 Hunger

Bevölkerungszuwachs Modellrechnung Umweltradioaktivität

und die Land- und Ernährungswirtschaft

Wichen Arnold 345 374 Radionuklide

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

Die neue

Insolvenzordnung

Bodmer Ulrich 410 431 Insolvenz

Bilanzanalyse Sicherheiten

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

Evaluation der Studienrichtung

"Naturschutz und Landschaftsökologie"

im Studiengang Agrarwissenschaften der Universität Bonn

Burghard Gertrud 440 457 Befragung

Studierende Ausbildung

Schmidt Ute Praktikum

Schmitt Thomas Berufsfeld

Weis Jürgen Beschäftigung

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

4 Die EU-Getreide- und Ölsaatenpolitik in den 90er Jahren

Willer Horst 501 569 ...

78 2000 1 ... ... ... ... ... ...

Betriebs- berater

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

(4)

Unzulänglichkeit von relationalen Systemen

 Flache Struktur (Tupel) mit homogenen Sammlungen (Relation)

 Darstellung der Objektstruktur nur über Fremdschlüssel möglich (keine Unterscheidungsmöglichkeiten für Generalisierung und Aggregation)

 Keine globalen Operatoren für komplexes Objekt

 Keine benutzerdefinierbaren Operatoren

 Bei nicht mengenorientierten Operationen

 procedure call von AP zum DBMS für jeden Zugriff und Speicherung

 da Objektstruktur durch Fremdschlüssel ausgedrückt, mindestens eine Adressenübersetzung pro Tupel.

 "Impedance mismatch" zwischen relationaler Sprache und OO-Programmiersprache.

(5)

Beispiele für reale Objekte, mögliche Operationen und ihre Darstellung im Programm Reales Objekt manuelle Operation Objektdarstellung im Programm

Text Schreiben

Ändern Wegwerfen

STRING oder eine Liste von STRINGs

Angestellter Einstellen Gehaltzahlen Entlassen

Record besteht aus Angestelltennummer Nachname

Vorname PLZ

...

Kugel Verschieben

Vergrößern Verkleinern

Record besteht aus Mittelpunkt

Radius

(6)

Imperative Programmierung

TYPE Kugel = RECORD

X,Y,Z: INTEGER;

Radius: REAL;

END;

Sollen mehrere Objekte vom Typ Kugel im Programm verwendet werden:

VAR K1, K2: Kugel;

Alle Daten zu Objekten vom Typ Kugel sind in der Record-Struktur "eingekapselt".

Zugriff erfolgt über die festgelegte Schnittstelle [Namen des Objekts (=Variable) und Namen der Komponenten]

Schwächen dieser Kapselung:

1) Man kann auf alle Daten eines Objekts zugreifen

2) Das Verhalten des Objekts kann nicht eingekapselt werden (Objekte können lokal für eine Prozedur sein; meist sollen aber bei gleichen Objekten mehrere Operationen durchgeführt werden)

Prozedur 1 Prozedur 2

Objekte Sicht der imperativen

Programmierung

(7)

TYPE Kugel = OBJECT

X,Y,Z: INTEGER;

Radius: REAL;

PROCEDURE Vergroessere (Faktor: REAL);

PROCEDURE Verschiebe (Vek1, Vek2, Vek3: INTEGER);

END;

Sicht der objektorientierten Programmierung

Objekt1 (z.B. K1) Objekt2 (z.B. K2)

Prozeduren

(8)

Zusammenhang von Objekten und Prozeduren

1. In imperativen Programmiersprachen agieren Prozeduren mit passiven Objekten.

In OOPLs agieren die Objekte selbst.

Beispiel: Objekte K1 und K2 um den Faktor 3 bzw. 0,3 vergroessern:

K1.Vergroessere(3);

K2.Vergroessere(0,3);

2. In (rein) objektorientierten Sprachen werden alle Manipulationen an Objekten über Methoden ausgeführt.

Beispiel: Initialisierung einer Kugel

a) in imperativen Sprachen: direkter Zugriff auf die Komponenten (Variablen), z.B. durch K1.X=2; K1.Y=4;...

b) in objektorientierten Sprachen: extra definierte Methode (z.B. eine Initialisierungsroutine Init definieren):

K1.Init(2, 4, 5, 7.35)

3. In objektorientierten Sprachen können Funktions- und Prozedurnamen überladen werden

Beispiel: Neben Objekttyp Kugel gibt es auch einen Objekttyp Zylinder TYPE Kugel = OBJECT

...

PROCEDURE Vergroessere(Faktor:REAL);

END;

TYPE Zylinder = OBJECT ...

PROCEDURE Vergroessere(Faktor:REAL);

END;

Für die beiden Fälle kann die Prozedur Vergroessere unterschiedlich definiert sein.

(9)

Vererbung von Eigenschaften I

In objektorientierten Sprachen können Eigenschaften und Methoden zwischen Objekttypen vererbt werden. (Die Objekttypen werden dazu in Hierarchien angeordnet: Allgemeinere Objekttypen

vererben ihre Eigenschaften auf speziellere).

Vererbungshierarchie für Graphikobjekte

3D_Objekt

Kugel Zylinder Quader

Würfel

erben

vererben

(10)

Vererbung von Eigenschaften II

TYPE 3D_Objekt = OBJECT

X, Y, Z: INTEGER;

END;

TYPE Kugel = OBJECT(3D_Objekt) Radius:REAL;

END;

TYPE Zylinder = OBJECT(3D_Objekt) Laenge, Radius: REAL;

END;

(Durch die Angabe OBJECT erbt Kugel die Eigenschaften von 3D_Objekt und besitzt damit neben der explizit definierten Eigenschaft Radius auch die vererbte Eigenschaft der Koordinaten des Mittelpunkts;

Hierarchie ist noch nicht vollständig verfeinert: Noch einführen: 3D_Objekt_mit_Radius unterhalb von 3D_Objekt und oberhalb von Kugel und Zylinder).

(11)

Vererbung von Methoden

In objektorientierten Sprachen können Methoden zwischen Objekttypen vererbt werden.

Beispiel: Wird für das 3D_Objekt eine Methode zum Verschieben bezüglich der X-, Y- und Z-Achse definiert, kann diese Methode auch für Kugel- oder Zylinderobjekte angewendet werden.

TYPE 3D_Objekt = OBJECT

X, Y, Z: INTEGER;

PROCEDURE VerschiebeX (L: INTEGER);

PROCEDURE VerschiebeY (L: INTEGER);

PROCEDURE VerschiebeZ (L: INTEGER);

END;

...

K1.VerschiebeY(11); K1.X:=5;

Z1.VerschiebeY(2) ...

(12)

Mehrfachvererbung

TYPE Hilfsassistent = OBJECT(Angestellte, Studenten) ...

END;

Personen

Hilfsassistenten

Angestellte Studenten

(13)

Zusammenfassung OOPLs

Im Gegensatz zu imperativen Sprachen werden in OOPLs

 neben Eigenschaften von Objekten auch die mit ihnen durchzuführenden Operationen, die Methoden, im Objekttyp definiert oder "eingekapselt".

 Objekte als aktive Elemente angesehen, die die Methoden selbst aufrufen und nicht von Prozeduren und Funktionen manipuliert werden.

 Alle Manipulationen an Objekten über Methoden ausführen (sollen).

 Eigenschaften und Methoden zwischen Objekttypen vererben können, indem diese in einer Vererbungshierarchie angeordnet werden.

 Ererbte Eigenschaften und Methoden redefinieren können (Overriding)

 Das dynamische Binden (evtl. neben dem statischen) unterstützen.

(14)

Einführung in objektorientierte Datenbanksysteme

In objektorientierten Datenbanksystemen sind nicht nur Standard-Datentypen für Eigenschaften von Objekten erlaubt, sondern auch die wiederholte Anwendung von Typkonstruktoren.

Beispiel: Personen (Vorname, Nachname, PLZ, Ort, Straße, Hausnummer, Geburtsdatum, Hobbies)

Wie kann das "Hobby-Problem" gelöst werden ?

(15)

Lösung mittels relationaler Datenbank I Möglichkeit 1

Personendaten

Vorname Nachname GebDatum PLZ Ort Strasse HausNr

Personenhobbies

Vorname Nachname GebDatum PLZ Hobby Probleme, wenn z.B.

a) 2 Personen mit gleichem Vor- und Nachnamen am gleichen Tag geboren sind und unter der gleichen PLZ wohnen.

b) 2 Personen mit gleichem Vor- und Nachnamen am gleichen Tag geboren sind und zwar ursprünglich an unterschiedlicher PLZ wohnen und dann aber umziehen - und zwar Pers1 an PLZ2 und Pers2 an PLZ1 -> dann Zuordnung der falschen Hobbies.

Lösung mittels relationaler Datenbank II

(16)

Möglichkeit 2

Personendaten

PersID Vorname Nachname GebDatum PLZ Ort Strasse HausNr

Hobbies

HobbyID Hobbybezeichnung

Personenhobbies

lfdnr PersID HobbyID

(künstliche Schlüssel simulieren Objektidentität)

(17)

Lösung mittels OODBMS

CLASS Personen

TYPE TUPLE(Name: TUPLE(Vorname: STRING, Nachname:STRING), Adresse: TUPLE(PLZ:INTEGER,

Ort: STRING, Straße: STRING,

Hausnummer: INTEGER), Hobbies: SET(Hobby:STRING),

Geburtsdatum: DATE)

Objektorientierte Datenbanksysteme wahren die Objektidentität. Objekte existieren unabhängig von den Werten ihrer Eigenschaften. Während sich die Werte der Eigenschaften ändern können, bleibt die Identität des Objekts unveränderlich.

(18)

Beispiel für Lösung mittels OODBMS

i0:

TUPLE(Name: TUPLE(Vorname: 'James', Nachname: 'Bond'), Adresse: TUPLE(PLZ:4711,

Ort: Penzance,

Straße: Upper Road, Hausnummer: 7), Hobbies: SET('Fußball', 'Boxen'), Geburtsdatum: 21.10.1957)

i1:

TUPLE(Name: TUPLE(Vorname: 'James', Nachname: 'Bond'), Adresse: TUPLE(PLZ:4712,

Ort: Mousehole, Straße: Sea View, Hausnummer: 99),

Hobbies: SET('Klavierspielen', 'Theater'),

Geburtsdatum: 21.10.1957)

(19)

Einordnung von Objekttypen in eine Hierarchie

CLASS Studenten INHERITS Personen

TYPE TUPLE (Matrikelnummer: INTEGER, Studienfach: STRING,

Vater: Personen, Mutter: Personen,

Zeugnis: SET(TUPLE (Fach: STRING, Note: REAL)))

Mittels INHERITS-Klausel werden die in Personen definierten Eigenschaften zum neuen Objekttyp vererbt.

Andere Objekte, die als Eigenschaft von Studenten vorkommen (Vater, Mutter) werden direkt als Komponentenobjekte definiert.

In objektorientierten Datenbanksystemen kann man neben den Eigenschaften von Objekttypen auch die mit ihnen durchführbaren Methoden in die Objekttyp-Definition einkapseln und vererben

(Beispiel: Berechnung des Alters aus dem Geburtsdatum und dem Tagesdatum)

(20)

Objektorientierter Entwurf (OOD)

a) Identifiziere die Objekte der Anwendung b) Beschreibe die Objekte der Anwendung

c) Identifiziere Beziehungen und Gemeinsamkeiten zwischen Objekten d) Fasse Objekte mit gemeinsamen Eigenschaften zu Klassen zusammen e) Identifiziere Beziehungen zwischen Klassen

f) Bilde die Klassenhierarchie

g) Implementiere die Funktionen der einzelnen Klassen h) Entwickle Programme aus Objektbeschreibungen

(21)

OOD-Prinzipien:

1) Objekte mit gemeinsamen Eigenschaften durch einen abstrakten Datentyp beschreiben 2) Den abstrakten Datentyp durch Klassen implementieren

3) Zwei Arten von Beziehungen ermitteln (Klasse-Komponentenklasse; Klasse-Unterklasse) Beschreibung von Objekten und Klassen: nicht sofort mit konkreten Datenstrukturen, sondern

zunächst nur abstrakte Datentypen (sie beschreiben nicht eine Implementierung, sondern die Menge der verfügbaren Operationen und ihre Eigenschaften)

Beziehungen zwischen Klassen:

a) Beziehung Klasse - Komponentenklasse (z.B. Ausleihobjkete und Entleiher sind Komponentenklassen von Entleihungen

b) Beziehung Klasse - Unterklasse (z.B. Zeitschriftenbände und Bücher sind Unterklassen von Ausleihobjekten; für jedes Buch sind dann die in Bücher definierten Attribute und Operationen, aber auch die von Ausleihobjekte ererbten Attribute und Operationen zuständig.

(22)

Beispiel für Beziehungen zwischen Klassen

Entleihungen

Entleiher Ausleihobjekte

Zeitschriften-

bände Bücher

Verlage ISBN

Klasse-Komponentenklasse- Beziehung

Klasse-Unterklasse- Beziehung

Referenzen

ÄHNLICHE DOKUMENTE

– Zeichen: Element aus einer zur Darstellung von Daten vereinbarten Menge verschiedener Zeichen (Zeichenvorrat).. – Binärzeichen (binary digit, Abkürzung: Bit): Zeichen aus einem

Es besteht die Notwendigkeit den kartographischen Modellbildungsprozeß zu automatisieren, nämlich einzelne Schritte der kartographischen Generalisierung und Visualisierung

Auch die Architektur ist Lacan zufolge etwas, das sich zunächst um eine Leere herum organisiert und daher auch symbolisch operiert.. 7 Dem Symbolischen gegenüber setzt Lacan

§  Rebound-Effekte: Kein Argument gegen Effizienz, sondern für intelligentere

A2ribute  von  Objekten  verwenden

Verweist ein Attribut auf einen Datensatz in einer anderen Tabelle, hat es die Funktion eines

DB_02-2: Fremdschlüssel bestimmen (einfach) Füllen sie alle Tabellen mit sinnvollen Datensätzen.. Markieren Sie die Primärschlüssel wie gelernt; markieren Sie die Fremdschlüssel

Ein Java-Objekt kann genau auf die Nachrichten reagieren, für die Methoden in seiner Klasse deklariert sind oder für die es Methoden geerbt hat (vgl... Poetzsch-Heffter,