Objektorientierte Datenbanken

Slides:



Advertisements
Ähnliche Präsentationen
Business Engineering Philipp Osl, Alexander Schmidt
Advertisements

Blue J.
Objektorientierte Programmierung
Zur Rolle der Sprache bei der Modellierung von Datenbanken
Datenmodellierung Externe Phase Informationsstruktur
Die Definitionsphase -Objektorientierte Analyse - Das statische Modell
Kapitel 4 Datenstrukturen
Objektorientierter Entwurf
Anwendungsfalldiagramm
Anbindung an Anwendungen
Java: Objektorientierte Programmierung
Abhängigkeitsbeziehung
Objektorientierte Konzepte und Notation in UML
Übung Datenbanksysteme UML
Software-Technik: (fortgeschrittene) Klassendiagramme
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Objektorientierte DBMS Klassen und Beziehungen Seminar: Verteilte Datenbanken Manuela Fischer.
RDF-Schema Seminar: „Semantic Web“ André Rosin,
Datenmodellierung - Aufbau einer Datenbank -
07-GraphischeObjekte Graphische Objekte in EMMA301Paint.
DVG Klassen und Objekte
Objektorientierte Analyse und Design mit der Unified Modelling Language (UML) Sandra Meißl
RelationentheorieObjektorientierte Datenbanken AIFB SS Das ODMG-Objektmodell vs. relationales Modell (1/9) ODMG-Objektmodell Literal_type Atomic_literal.
1 Klassen (1) Eine Klasse beschreibt eine Menge von Objekten mit gemeinsamer Struktur gemeinsamem Verhalten gemeinsamen Beziehungen gemeinsamer Semantik.
UML Begleitdokumentation des Projekts
Visualisierung objektrelationaler Datenbanken
Objektorientierte Modellierung
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
6. Vorlesung: Statische Konzepte
Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs
Entwurfs- und Implementationsdiagramme
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Objektorientierte Konzepte/UML Geoinformation I Vorlesung 2 WS 2000/2001.
UML WS 09/10: Datenbanken vs MarkUp Dozent: Prof. Dr. Manfred Thaller
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 Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung Wintersemester 2011/12 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Vorlesung #2 Datenbankentwurf
SS 2009 – IBB4C Datenmanagement Fr 15:15 – 16:45 R Vorlesung #2 Datenbankentwurf.
SS 2010 – IBB4C Datenmanagement Fr 15:15 – 16:45 R Vorlesung #2 Datenbankentwurf.
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #3 ER Modellierung.
SS 2012 – IBB4C Datenmanagement Fr 15:15 – 16:45 R Vorlesung #3 ER Modellierung.
SS 2013 – IBB4B Datenmanagement Fr 17:00 – 18:30 R Vorlesung #3 ER Modellierung.
SS 2010 – IBB4C Datenmanagement Fr 15:15 – 16:45 R Vorlesung #3 ER Modellierung.
UML-Kurzüberblick Peter Brusten.
Paradigmenwechsel in der Unternehmensmodellierung Prof. Dr. Wolfgang Voigt Dipl.-Ing. Päd. Alexander Huwaldt UML Extrakt UML Seminar, Chemnitz
Datenbanksysteme für Hörer anderer Fachrichtungen
EPROG Tutorium #4 Philipp Effenberger
1 Ausgangslage Vorgehensweise: Informell, pragmatisch, stark graphisch orientiert. Systemanalytischer Ausgangspunkt: Klassischer Systembegriff als Ansammlung.
Objektorientierte Modellierung mit UML
Klassen und Klassenstruktur
SS 2014 – IBB4C Datenmanagement Do 17:00 – 18:30 R Vorlesung #2 Datenbankentwurf.
WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 Vorlesung #10 RDBMS Erweiterungen.
Motivation Motivation für objektorientierte DBMS (ODBMS): –„Impedance Mismatch“ zwischen relationalem Datenmodell und Programmiersprachen-Datenmodell erfordert.
SS 2014 – IBB4C Datenmanagement Do 17:00 – 18:30 R Vorlesung #3 ER Modellierung.
HG13_ Herzgen, Jung & Lorkowski1 Java Programmierung BlueJ Workshop.
Java-Kurs Übung Besprechung der Hausaufgabe
Modellierung der Wirklichkeit
Sichtbarkeit einschränken
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R Vorlesung #2 Datenbankentwurf.
Objektorientierte (OO) Programmierung
Vom Konzept zur Datenbank
Objektorientierte Datenbanken
Objektorientierte Datenbanken zBeim vorigen Mal: yUmsetzung in objektorientierte Modellierung auf Implementierungsebene am Beispiel Java yKlassen und Instanzen.
Vorlesung #2 ER –Modellierung (Datenbankentwurf)
Vorlesung #2 Datenbankentwurf
November 18 Informatik Kurse
Vorlesung #3 ER Modellierung
 Präsentation transkript:

Objektorientierte Datenbanken Ralf Möller, FH-Wedel Beim vorigen Mal: Anfragesprachen: SQL (kurz) Mehrbenutzerbetrieb und Sperren Transaktionen Anbindung an Programmiersprachen Probleme der relationalen Datenbanktechnologie Heute: Objektorientierte Modellierung

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 Sprache für Integritätsbedingungen meist schwach (hier nicht vertieft)

„Zersplitterung“: Pointierte Darstellung Relationale Modellierung bedingt folgende Sicht: Bevor ein Auto in der Garage abgestellt werden kann, muß 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.

Impedance Mismatch Datenmodellierungsform in Programmiersprachen paßt nicht zu Form in Datenbanken Programmiersprachen: Record/Tupelorientiert Mit hoher Frequenz einfache Operationen durchführen Datenbanksysteme: Mengenorientiert Mit niedriger Frequenz komplexe Operationen durchführen [F. Matthes, J.W. Schmidt]

Objektorientierte Modellierung (1) Was ist ein Objekt? Zusammensetzung von Daten und Operationen Teile der Zusammensetzung sind durch Attribute gekennzeichnet Objekte haben einen Zustand Zugriff nur über wohldefinierte Schnittstellen (Kapselung) Objektspezifische Operatoren Objekte bekommen automatisch eine Identifikation (OID) Orthogonalitätsprinzip Zusammengesetzte Daten wie Elementardaten behandeln soweit sinnvoll Teile (Attributwerte) können wieder Objekte sein

Objektorientierte Modellierung (2) Setze- und Erfragefunktionen für Attributwerte als Spezialfall objektspezifischer Operationen Aktivierung von Operationen durch Nachrichten Software-Engineering-Prinzipien Kapselungsprinzip: Wer darf welche Attribute wo sehen/ändern? Wer darf welche Nachricht an wen senden? Interne Sicht (Attribute) vs. Externe Sicht (Nachrichten) Externe Sicht bedingt höheren Ressourcenverbrauch Festlegung der Attribute und Operatoren nicht für genau ein Objekt, sondern für eine Menge von Objekten gleicher Art Eine solche Menge von Objekten gleicher Art heißt Klasse (vgl. Entity in ERM)

Unified Modeling Language (UML) Der UML-Teil dieser Vorlesung enthält Material von Eckhardt Holz, Humboldt-Universität Berlin Als detaillierter Referenz sei auch „The Unified Modeling Language – Reference Manual“ empfohlen

UML Konzepte Objekte / Instanzen einer Klasse Klassen beschreiben die statische Struktur von Objekten / Instanzen Klassen sind gekennzeichnet durch: Name (aus dem Vokabular der Problemdomäne gewählt) Attribute (beschreiben die Struktur der Instanzen einer Klasse) Operationen (beschreiben das Verhalten der Instanzen einer Klasse) Objekte erzeugen: Instantiieren Automatische Vergabe einer OID

Statische Strukturdiagramme (1)

Basis-Datentypen Beschreibung des Wertebereich von Attributen Integer, short, ... Real String ...

Funktionalität ohne Struktur: Interfaces Nur Beschreibung der Nachrichten die an Objekte gesandt werden können, die das Interface implementieren (d.h. des Protokolls, das die Objekte unterstützen) Keine Beschreibung der Struktur der Objekte Auswahl der konkreten Struktur nach pragmatischen Gesichtspunkten zur Erzeugungszeit einer Instanz

Statische Strukturdiagramme (2)

Relationen: Graphische Notation Komposition Vgl. Relationships in ERM

Relationen: Beispiel für Komposition

Relationen in Strukturdiagrammen: Bedeutung Assoziationen, Aggregationen und Komposition modellieren auf Klassenebene Beziehungen zwischen Instanzen (der beteiligten Klassen) Generalisierungen modellieren Beziehungen zwischen Klassen (d.h. Mengen von Instanzen) Abhängigkeiten haben keine wohldefinierte Semantik

Relationen: detailliertere Beschreibung Multiplizität gibt an, wieviel Objekte an der Relation beteiligt sind Navigierbarkeit beschränkt den bidirektionalen Charakter von Relationen Constraints beschränken den Gültigkeitsbereich von Relationen Rollennamen beschreiben die Endpunkte der Relation

Relationen: Multiplizitäten

Klassen und Objektdiagramme (Beispiel) Kostet Erbringt Erbringt

Multiplizität Jedes Element von Klasse A steht mit mindestens i Elementen der Klasse B in Beziehung ... und mit maximal j vielen Klasse-B-Elementen Analoges gilt für das Intervall k..l Multiplizitätsangabe ist analog zur Funktionalitätsangabe im ER-Modell Nicht zur (min,max)-Angabe: Vorsicht!

Klassen und Assoziationen

Aggregation

Begrenzungsflächenmodellierung von Polyedern

Mehrstellige Relationen

Generalisierung Generalisierung ist eine Relation zwischen einer Superklasse und ihren Subklassen. Zwei Mechanismen: Generalisierung Spezialisierung Gemeinsame Attribute, Operationen und Relationen werden auf dem höchsten anwendbaren Hierarchieniveau gezeigt Generalisierungen können Namen haben (!)

Generalisierung (Beispiel)

Abstrakte Klassen Dienen auf Modellierungsebene zur Beschreibung gemeinsamer Eigenschaften (Attribute und Operationen) Werden nicht instantiiert

Generalisierung: Constraints overlapping, disjoint complete, incomplete

Generalisierung und Vererbung Attribute Vererbung „nach unten“ Sichtbarkeit steuerbar (public, protected, private) Operationen Dynamisches Binden bei Operationen mit gleichem Namen in Unterklasssen speziellste Operation (zuerst) anwenden

Assoziationen: Constraints Subset ...

Zusammenfassung, Kernpunkte UML-Objektbegriff, statische Struktur Objektorientierte Modellierung auf Entwurfsebene Klassen und Instanzen Attribute (inkl. Sichtbarkeit) Methoden Klassenbeziehungen Generalisierung, Zerlegung Auf Klassenebene beschriebene Instanzenbeziehungen Relationen: Komposition, Aggregate, Assoziationen

Was kommt beim nächsten Mal? Objektorientierte Modellierung, Teil 2 Umsetzung in Implementierungsmodell: Java