Objektorientierte Datenbanken

Ähnliche Dokumente
Software-Engineering

Vorlesung Datenbanksysteme vom

Wiederholung: Relationale Algebra

Datenbanken. Datenintegrität + Datenschutz. Tobias Galliat. Sommersemester 2012

Kapitel 5 Dr. Jérôme Kunegis. SQL: Grundlagen. WeST Institut für Web Science & Technologien

Fortsetzung: Projektion Selektion. NULL Werte

Datenintegrität. Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen

Datenintegrität. Arten von Integritätsbedingungen. Statische Integritätsbedingungen. Referentielle Integrität. Integritätsbedingungen in SQL.

Datenbanksysteme SS 2007

Grundlagen des relationalen l Modells

Architektur eines DBMS Logische Optimierung

Das relationale Modell

Wiederholung VU Datenmodellierung

Grundlagen des relationalen Modells

Datenmodellierung VU Einführung SS 2016

HPI MOOC. n-äre Relationships. Rollen von Relationships. Konvertierung in binäre Relationships. Attribute an Relationships

Aufgabensammlung SQL SW4 1. Einfache Anfragen

Datenintegrität. Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung

Objektorientierte Datenbanken

konzeptueller Entwurf mittels E/R-Modell einfache Funktionalitäten n-stellige Relationships (n>2) (siehe nächste zwei Folien) schwache Entities

Referentielle Integrität

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #3. SQL (Teil 1)

Datenbanksysteme (1)

Rückblick: Entity-Relationship-Modell

Schema: konkrete Beschreibung einer bestimmten. (unter Verwendung eines Datenmodells)

Informatik für Ökonomen II: Datenintegrität. Prof. Dr. Carl-Christian Kanne

Referentielle Integrität

Datenbanken. Prof. Dr. Gerd Stumme Dipl.-Inform. Christoph Schmitz. FG Wissensverarbeitung FB Mathematik/Informatik

Datenbanken. Einführung. Tobias Galliat. Sommersemester 2012

Termin 12: Datenbanksysteme (2) - Einführung in SQL

Einführung, Entity-Relationship Modell 9. DATENBANKSYSTEME: DAS ENTITY RELATIONSHIP MODELL

Das relationale Modell

Datenbanksysteme 2013

Datenbankanwendungen werden oft über einen sehr langen Zeitraum (z.b. Jahrzehnte) eingesetzt

Datenbanken. Prof. Dr. Gerd Stumme Dr. Andreas Hotho Dipl.-Inform. Christoph Schmitz. Organisatorisches. Organisatorisches.

Rückblick: Datenbankentwurf

Kapitel 7 Dr. Jérôme Kunegis. Logische Kalküle. WeST Web Science & Technologies

Relationale Kalküle. Grundlagen der Datenbanken. Dr. Jérôme Kunegis Wintersemester 2013/14

Datenbanken. Seminararbeit. Einführung in das wissenschaftliche Arbeiten

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #5. SQL (Teil 3)

Grundlagen Datenbanken (GDB)

Carl-Christian Kanne. Einführung in Datenbanken p.1/513

Rückblick: Relationales Modell

Datenbanken I - Einführung

Relationale Abfragesprachen

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Das Relationale Modell

Einführung. Kapitel 1 2 / 508

Datenintegrität. Bisherige Integritätsbedingungen

Einführung in Datenbanksysteme. Donald Kossmann Institut für Informationssysteme ETH Zürich

Datenbanksysteme (2) Einführung in SQL

Datenbankentwurf. VO Datenmodellierung. Katrin Seyr. Institut für Informationssysteme Technische Universität Wien.

Datenbanken Datenbanken 1 Belegnummer Belegnummer

Datenbanksysteme Vorlesung vom noch Kapitel 7: SQL. Oliver Vornberger. Institut für Informatik Universität Osnabrück

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Teil 2: Objektorientierte deduktive Datenbanken (DOOD)

Normalisierung I. Ziele

Datenbanksysteme 2015

Kapitel 3: Datenbanksysteme

Relationale Datenbanken Kursziele

Datenbanken. Prof. Dr. Steffen Staab. Organisatorisches. Organisatorisches. Vorlesung

Kapitel 3: Datenbanksysteme

Rückblick: Relationale Entwurfstheorie

Konzeptuelle Modellierung

Objektorientierte Datenbanken

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Datenbanksysteme. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2017/18.

Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung

Datenbanksysteme. Thomas Neumann 1 / 31

BERUFSPRAKTIKUM UND -VORBEREITUNG

Wirtschaftsinformatik 7a: Datenbanken. Hochschule für Wirtschaft und Recht SS 16 Dozent: R. Witte

Datenbanken Grundlagen und Design

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Kapitel 1: Einführung 1.1 Datenbanken?

Geoinformation Abbildung auf Tabellen

Transkript:

OODB 1 Slide 1 Objektorientierte Datenbanken Vorlesung 1 Sebastian Iwanowski FH Wedel

OODB 1 Slide Organisatorisches Vorlesung Mittwochs, 09:30 10:5 Raum HS Übung Dienstags, 09:30 10:5 (erstmalig am 1.0.) 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 3 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 Inhalte: Motivation und Überblick Vorlesungsaufbau 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/ss005/oodb.html alte Vorlesung: www.fh-wedel.de/~iw/lehrveranstaltungen/ss00/oodb.html Literatur (in Folgenden genannt)

OODB 1 Slide 5 Literatur für den allgemeinen Kontext Andreas Geppert: Objektrelationale und objektorientierte Datenbankkonzepte und -systeme, dpunkt.verlag 00, ISBN 3-8986-1- Andreas Heuer: Objektorientierte Datenbanken Konzepte, Modelle, Standards und Systeme, Addison Wesley 1997 (. Auflage), ISBN 3-89319-800-8 Alfons Kemper / Andre Eickler: Datenbanksysteme Eine Einführung, Oldenbourg 00 (5. Auflage), ISBN 3-86-739- In unserer Bibliothek: Oldenbourg 001 (. Auflage), ISBN 3-86-5706- Andreas Meier / Thomas Wüst: Objektorientierte und objektrelationale Datenbanken Ein Kompaß für die Praxis, dpunkt.verlag 000, ISBN 3-93588-68-1

OODB 1 Slide 6 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-67- David Jordan / Craig Russell: Java Data Objects, O'Reilly 003, ISBN 0-596-0076-9 Robin Roos: Java Data Objects, Addison-Wesley 00, ISBN 0-31-1380-8 Arno Schmidhauser: Skript JDO, Hochschule für Technik und Architektur (HTA) Bern

OODB 1 Slide 7 und nun geht es los: erst einmal mit Datenbanken

OODB 1 Slide 8 Ziele von Datenbanken: Warum 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 9 Wie sind Datenbanken aufgebaut? konzeptionelle Sicht ER-Modell (ER=Entity Relationship) Datenmodell logische Sicht Relationales Datenmodell (oder anderes Modell) physische Sicht Konkrete Speicherplätze Datenmanipulationssprache (DML) SQL Zum Definieren, Abfragen und Ändern eines Datenbestandes für ein relationales Datenmodell

OODB 1 Slide 10 Konzeptionelle Sicht: Beispiel für ein ER-Modell MatrNr Studenten voraussetzen Nachfolger Vorgänger hören Vorlesungen VorlNr SWS Semester Titel Note prüfen lesen PersNr Assistenten arbeitenfür Professoren Rang Raum Fachgebiet PersNr

OODB 1 Slide 11 Logische Sicht: Ausschnitt eines relationalen Modells Professoren 1 lesen N Vorlesungen Professoren Vorlesungen PersNr Rang Raum VorlNr Titel SWS Gelesen Von 15 Sokrates C 6 Grundzüge 137 16 Russel C 3 501 Ethik 15 17 Kopernikus C3 310 133 Popper C3 5 13 Augustinus C3 309 136 Curie C 36 137 Kant C 7 503 509 05 505 516 Erkenntnistheorie Mäeutik Logik Wissenschaftstheorie Bioethik 3 3 16 15 15 16 16 559 Der Wiener Kreis 133 50 Glaube und Wissen 13 630 Die 3 Kritiken 137

Anfragen an die Datenbank Anfragen können Informationen aus beliebigen Tabellen verknüpfen: Professoren Vorlesungen PersNr Rang Raum VorlNr Titel SWS gelesen Von 15 16 Sokrates Russel C C 6 3 501 Grundzüge Ethik 137 15 137 Kant C 7 509 Mäeutik 15 630 Die 3 Kritiken 137 Welcher Professor liest "Mäeutik"? select, Titel from Professoren, Vorlesungen where PersNr = gelesenvon and Titel = 'Mäeutik'; SQL-Anfrage Die Bearbeitung verknüpfter Anfragen kann zeitaufwändig sein! OODB 1 Slide 1

PersNr 15 16 Professoren Sokrates Russel Rang C C Raum 6 3 VorlNr 501 Vorlesungen Titel SWS Grundzüge Ethik gelesen Von 137 15 137 Kant C 7 509 Mäeutik 15 630 Die 3 Kritiken 137 JOIN Verknüpfung: jeder mit jedem PersNr 15 15 Sokrates Sokrates Rang C C Raum 6 6 VorlNr 501 Titel Grundzüge Ethik SWS gelesen Von 137 15 15 Sokrates C 6 509 Mäeutik 15 16 16 Russel Russel C C 3 3 501 Grundzüge Ethik 137 15 137 SELECTION Kant C 7 630 Die 3 Kritiken Auswahl von Zeilen 137 PersNr 15 PROJECTION Sokrates Rang C Raum 6 VorlNr Titel 509 Mäeutik Auswahl von Spalten SWS gelesen Von 15 Sokrates Titel Mäeutik OODB 1 Slide 13

OODB 1 Slide 1 Achtung: Übertragung aus ER-Modell darf nicht beliebig sein! lesen Professoren 1 N Z.B. NICHT so: Vorlesungen Vorlesungen Professoren PersNr Rang Raum liest VorlNr 501 Titel Grundzüge Ethik SWS 15 Sokrates C 6 501 503 Erkenntnistheorie 3 15 Sokrates C 6 509 509 Mäeutik 15 Sokrates C 6 05 05 Logik............... 505 Wissenschaftstheorie 3 13 Augustinus C3 309 50 516 559 Bioethik Der Wiener Kreis 136 Curie C 36?? 50 Glaube und Wissen 630 Die 3 Kritiken

OODB 1 Slide 15 Anomalien durch Verletzung von Normalformen Vorlesungen VorlNr Titel SWS Professoren Grundzüge PersNr Rang Raum liest 501 Ethik 15 Sokrates C 6 501 503 Erkenntnistheorie 3 15 Sokrates C 6 509 15 Sokrates C 6 05 509 05 505 Mäeutik Logik Wissenschaftstheorie 3............... 516 Bioethik 13 Augustinus C3 309 50 559 Der Wiener Kreis 136 Curie C 36?? 50 Glaube und Wissen 630 Die 3 Kritiken 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 16 So sollte es stattdessen gemacht werden: Professoren Studenten Vorlesungen PersNr Rang Raum MatrNr Semester VorlNr Titel SWS gelesenvon 15 Sokrates C 16 Russel C 17 Kopernikus C3 133 Popper C3 13 Augustinus C3 136 Curie C 137 Kant C voraussetzen Vorgänger Nachfolger 501 503 509 501 516 503 505 501 505 505 559 prüfen MatrNr VorlNr PersNr 8106 16 6 3 310 5 309 36 7 Note 1 00 Xenokrates 503 Jonas 610 Fichte 6830 Aristoxenos 7550 Schopenhauer 8106 Carnap 910 Theophrastos 9555 Feuerbach hören MatrNr VorlNr 610 7550 7550 05 8106 501 8106 505 8106 516 8106 559 910 910 501 910 509 18 1 10 8 6 3 501 503 509 05 505 516 559 50 630 PerslNr 300 3003 300 3005 3006 3007 Grundzüge Ethik Erkenntnistheorie 3 Mäeutik Logik Wissenschaftstheorie 3 Bioethik Der Wiener Kreis Glaube und Wissen Die 3 Kritiken Assistenten Fachgebiet Platon Ideenlehre Aristoteles Syllogistik Wittgenstein Sprachtheorie Rhetikus Planetenbewegung Newton Keplersche Gesetze Spinoza Gott und Natur 137 15 16 15 15 16 16 133 13 137 Boss 15 15 16 17 17 16 503 501 15 9555 50 7550 630 137 503 50 effiziente Darstellung, aber unübersichtlich!

OODB 1 Slide 17 Daraus resultierender Nachteil: Navigierende Zugriffe sind umständlich Welche Vorlesungen müssen für Der Wiener Kreis gehört worden sein? voraussetzen Vorgänger Nachfolger VorlNr Vorlesungen Titel SWS gelesenvon 501 503 501 505 501 503 509 516 505 505 559 501 503 509 05 505 516 Grundzüge Ethik Erkenntnistheorie Mäeutik Logik Wissenschaftstheorie Bioethik 3 3 137 15 16 15 15 16 16 559 Der Wiener Kreis 133 50 Glaube und Wissen 13 630 Die 3 Kritiken 137 select pred1.titel, pred.titel, pred3.titel from Vorlesungen this, Vorlesungen pred1, Vorlesungen pred, Vorlesungen pred3, voraussetzen pred1pt, voraussetzen predpt, voraussetzen pred3pt where this.titel = 'Der Wiener Kreis' and this.vorlnr = pred1pt.nachfolger and pred1pt.vorgänger = pred1.vorlnr and pred1pt.vorgänger = predpt.nachfolger and predpt.vorgänger = pred.vorlnr and predpt.vorgänger = pred3pt.nachfolger and pred3pt.vorgänger = pred3.vorlnr; SQL-Antwort: 'Wissenschaftstheorie', 'Erkenntnistheorie', 'Ethik', 'Grundzüge' SQL-Anfrage (nur bis zum 3. Vorgänger, allgemein nicht möglich!)

OODB 1 Slide 18 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 19 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 0 Themenwechsel: Objektorientierte Programmierung

OODB 1 Slide 1 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 Vererbung Datenkapselung durch Methodenzugriff vereinfacht lokale Modellierung vereinfacht nachträgliche Veränderung 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 Aufbau eines Objekts allgemein: Klasse erweitert Superklasse Realisierung in Java: class Professoren extends Angestellte Attribut wert1 Attribut wert.. Beziehung Objekt1 Beziehung Objekt.. Methode Funktion1 (...) Methode Funktion (...).. In Java keine syntaktische Unterscheidung zwischen Attribut und Beziehung { } String rang; int raum; 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 3 Vererbung Uni-Mitglieder is-a Generalisierung Spezialisierung Studenten Angestellte PersNr MatrNr Fachgebiet Assistenten is-a Professoren Rang Raum

OODB 1 Slide Noch einmal das ER-Modell von vorhin MatrNr Studenten voraussetzen Nachfolger Vorgänger hören Vorlesungen VorlNr SWS Semester Titel Note prüfen lesen PersNr Assistenten arbeitenfür Professoren Rang Raum Fachgebiet PersNr

OODB 1 Slide 5 ER-Modell plus Vererbung MatrNr Studenten Vorgänger voraussetzen hören Vorlesungen Semester Note prüfen lesen Nachfolger VorlNr SWS Titel Fachgebiet Assistenten arbeitenfür Professoren Rang Raum PersNr is-a Angestellte

OODB 1 Slide 6 UML-Notation für Beziehungen Komposition

OODB 1 Slide 7 Objektmodell in UML-Notation Studenten +M atrnr : int + : String +Semester : int +Notenschnitt() : float +SummeW ochenstunden() : short 1 +Prüfling +Hörer 1..* hören * +Nachfolger * Vorlesungen +VorlN r : int +Titel : String +SW S : int voraussetzen * * +AnzHörer() : int +DurchfallQuote() : float * Prüfungen +Note : Decimal +Datum : Date +verschieben() * * 1 1 +Prüfer +Prüfungsstoff gelesenvon Assistenten +Fachgebiet : String +Gehalt() : short * arbeitenfür +Boss 1 Professoren +Rang : String +Notenschnitt() : float +Gehalt() : short +Lehrstundenzahl() : short 1 +Dozent Angestellte +PersNr : int + : String +Gehalt() : short

OODB 1 Slide 8 Synthese: Wie bringen wir beides zusammen?

OODB 1 Slide 9 Gemeinsamkeiten bei der Modellierung Konzeptionelles Modell (ER-Modell) Relationales Modell Objektorientiertes Modell

OODB 1 Slide 30 Unterschiede bei der Modellierung A Konzeptionelles Modell (ER-Modell) B 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 31 Beispiel für ein ER-Modell A: voraussetzen Nachfolger MatrNr Vorgänger VorlNr Studenten hören Vorlesungen SWS Semester Titel Note prüfen lesen PersNr Rang Assistenten arbeitenfür Professoren Raum Fachgebiet PersNr

PersNr 15 16 17 133 13 136 137 MatrNr 8106 503 7550 Konvertierung von A in ein relationales Modell C: Vorgänger 501 503 501 505 Professoren Sokrates Russel Kopernikus Popper Augustinus Curie Kant voraussetzen VorlNr 501 630 prüfen Rang C C C3 C3 C3 C C Nachfolger 501 503 509 516 505 505 559 PersNr 16 15 137 Raum 6 3 310 5 309 36 7 Note MatrNr 00 503 610 6830 7550 8106 910 9555 MatrNr 610 7550 7550 8106 8106 8106 8106 910 910 910 9555 503 Studenten Xenokrates Jonas Fichte Aristoxenos Schopenhauer Carnap Theophrastos Feuerbach hören VorlNr 05 501 505 516 559 501 509 50 50 Nicht erkennbar aus Relationen: 1 Semester 18 1 10 8 6 3 OODB 1 Slide 3 PerslNr 300 3003 300 3005 3006 3007 VorlNr 501 503 509 05 505 516 559 50 630 Platon Aristoteles Wittgenstein Rhetikus Newton Spinoza Vorlesungen Titel Grundzüge Ethik Erkenntnistheorie Mäeutik Logik Wissenschaftstheorie Bioethik Der Wiener Kreis Glaube und Wissen Die 3 Kritiken Assistenten Fachgebiet Ideenlehre Syllogistik Sprachtheorie Gott und Natur SWS 3 3 Planetenbewegung Keplersche Gesetze gelesenvon 137 15 16 15 15 16 16 133 13 137 Boss 15 15 16 17 17 16 Werden Studenten von Assistenten oder Professoren geprüft? Was hat voraussetzen mit Vorlesungen zu tun?

OODB 1 Slide 33 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 3 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 35 Noch offene Frage: Wie können wir objektorientiert modellieren und dennoch eine Datenbank benutzen? Wir nähern uns der Antwort beim nächsten Mal!