Objektorientierte Datenbanken

Slides:



Advertisements
Ähnliche Präsentationen
Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs
Advertisements

Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs
Deduktive Datenbanken
Kapitel 3: Logische Datenmodelle
Relationale und Objekt-relationale Datenbanken
Vorlesung: Prof. Norbert Fuhr
Einführung in Informationssysteme
Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
Datenbanksysteme Schwerpunkte: Datenbanksystem (DBS): Datenbank (DB):
Grundlagen Datenbanken
Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg1/7 Datenbanken werden als Anhäufung von Werten eines Wertebereiches aufgefasst und Datenbankabfragen.
Kapitel 2: Konzeptuelle Modellierung
Fachbereich Mathematik/Informatik Universität Osnabrück
Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs
Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs
Historische Entwicklung relationaler DBMS
WS 2009/10 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #4 SQL (Teil 1)
WS 2012/13 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
SS 2011 – IBB4C Datenmanagement Fr 15:15 – 16:45 R Vorlesung #5 Relationale Entwurfstheorie.
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #6 SQL (Teil 3)
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.
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
WS 2011/12 Datenbanksysteme Mi 15:15 – 16:45 R Vorlesung #9 Physische Datenorganisation.
Vorlesung #4 Überführung des ER-Modells in das relationale Modell
Vorlesung #4 SQL (Teil 1).
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #3 ER Modellierung.
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #8 SQL (Teil 3)
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 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #6 SQL (Teil 1)
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #7 SQL (Teil 4)
WS 2013/14 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #5 SQL (Teil 2)
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #2 Datenbankentwurf.
SS 2010 – IBB4C Datenmanagement Fr 15:15 – 16:45 R Vorlesung #3 ER Modellierung.
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R Vorlesung #5 SQL (Teil 2)
Vorlesung #4 Überführung des ER-Modells in das relationale Modell
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #4 SQL (Teil 1)
Datenbanksysteme für hörer anderer Fachrichtungen
Vorlesung #10 Physische Datenorganisation
Datenbanksysteme für Hörer anderer Fachrichtungen
Relationales Datenmodell und DDL
Relationale Datenbanken I
SS 2014 – IBB4C Datenmanagement Do 17:00 – 18:30 R Vorlesung #2 Datenbankentwurf.
WS 2014/15 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
SS 2014 – IBB4C Datenmanagement Do 17:00 – 18:30 R Vorlesung #3 ER Modellierung.
SS 2015 – IBB4C Datenmanagement Fr 17:00 – 18:30 R Vorlesung #2 Datenbankentwurf.
WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #9 SQL Zusammenfassung.
Grundlagen Datenbanken (GDB)
Objektorientierte Datenbanken zBeim vorigen Mal: yArchitektur von DB-Systemen yGrundlagen der Entity-Relationship-Modellierung yProbleme beim Übergang.
Technische Universität München Übung zur Einführung in die Informatik für Hörer anderer Fachrichtungen im Sommersemester 2010 Sitzung 6: Datenbanksysteme.
Datenbanken Das Relationale Datenmodell Ralf Möller Universität zu Lübeck Institut für Informationssysteme.
Institut für Informationssysteme
Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs
 standardisierte -Datendefinitionssprache (DDL) -Datenmanipulationssprache (DML) -Anfragesprache (Query)  derzeit aktueller Standard ist SQL 3  objektrelationale.
Einführung in Datenbanksysteme Donald Kossmann Systems Group ETH Zürich
Internships in India (Accenture)  Falls Sie ein Internship in India machen möchten, bitte setzen Sie sich mit mir in Verbindung:
Technische Universität München Übung zur Einführung in die Informatik für Hörer anderer Fachrichtungen im Sommersemester 2010 Sitzung 7: Grundlagen des.
Technische Universität München Übung zur Einführung in die Informatik für Hörer anderer Fachrichtungen im Sommersemester 2010 Sitzung 8: Die relationale.
Vorlesung #2 ER –Modellierung (Datenbankentwurf)
Vorlesung #4 Relationales Kalkül und SQL (Teil 1)
Vorlesung #3 ER –Modellierung (Fortsetzung)
Vorlesung #7 SQL (Teil 4).
Datenbanken Das Relationale Datenmodell
Vorlesung #2 Datenbankentwurf
Vorlesung #3 ER Modellierung
Grundlagen Datenbanken (GDB)
 Präsentation transkript:

Objektorientierte Datenbanken Ralf Möller, FH-Wedel Voraussetzungen: Datenbanken, Programmiersprachen Lernziele allgemein: Fundamente und Grundprinzipien von OODBen Systematische Entwicklung von Programmen Organisation: Vorlesung Übung

Übung Ziel: Durchführung: Christine Apfel, Katrin Fitz 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

Literatur, Details und Zusatzinformationen Präsentationen: http://www.fh-wedel.de/~mo/lectures/oodb-sose-03.html Literatur: Weitere Literatur wird noch bekanntgegeben...

Weitere Literatur und Danksagung A. Kemper, A. Eickler, Datenbanksysteme: Eine Einführung Diese Vorlesung basiert auf Präsentations- material zu diesem Buch

Ü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

Ü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

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

Die Abstraktionsebenen eines Datenbanksystems ... Sicht1 Sicht 2 Sicht 3 Logische Ebene Physische Ebene Datenunabhängigkeit: physische Unabhängigkeit logische Datenunabhängigkeit

Datenmodellierung Ausschnitt der Realen Miniwelt Manuelle/intellektuelle Modellierung Konzeptuelles Schema (ER-Schema) Halbautomatische Transformation Relationales Schema Objektorientiertes Schema ...

Modellierung einer kleinen Beispielanwendung Studenten Professoren Vorlesungen Reale Welt: Universität Konzeptuelle Modellierung MatrNr PersNr Studenten Professoren Name Name hören lesen VorlNr Vorlesungen Titel

Logische Datenmodelle Relationales Datenmodell Objektorientiertes Datenmodell Deduktives Datenmodell ...

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;

Architekturübersicht 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 Anwendungs- Programmierer Datenbank- administratoren Hintergrundspeicher

Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs Konzeptuelle Ebene Implementationsebene Physische Ebene

Entity/Relationship-Modellierung MatrNr Name Semester Entity (Gegenstandstyp) Relationship (Beziehungstyp) Attribut (Eigenschaft) Schlüssel (Identifikation) Rolle Studenten Hörer hören Lehrveranstaltung Vorlesungen VorlNr Titel SWS

Universitätsschema voraussetzen Nach- folger VorlNr MatrNr Vorgänger Studenten Assistenten MatrNr PersNr Semester Name Fachgebiet Note hören prüfen arbeitenFür Professoren Vorlesungen lesen voraussetzen SWS VorlNr Titel Raum Rang Nach- folger Vorgänger Universitätsschema

Funktionalitäten E1 E2 R ... R  E1 x E2 E1 E2 1:N 1:1 N:1 N:M

Funktionalitäten bei n-stelligen Beziehungen P N M R En E2 1 Ek R : E1 x ... x Ek-1 x Ek+1 x ... x En  Ek

Beispiel-Beziehung: betreuen 1 Professoren N betreuen Studenten 1 Seminarthemen Note betreuen : Professoren x Studenten  Seminarthemen betreuen : Seminarthemen x Studenten  Professoren

Dadurch erzwungene Konsistenzbedingungen Studenten dürfen bei demselben Professor bzw. derselben Professorin nur ein Seminarthema "ableisten" (damit ein breites Spektrum abgedeckt wird). 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.

Funktionalitäten N M N M N N M 1 1 N 1 voraussetzen Nach- folger Studenten Assistenten MatrNr PersNr Semester Name Fachgebiet Note hören prüfen arbeitenFür Professoren Vorlesungen lesen voraussetzen SWS VorlNr Titel Raum Rang Nach- folger Vorgänger Funktionalitäten N M N M N N M 1 1 N 1

(Min, Max)-Notation E1 (min1 max1) (minn, maxn) (min2, max2) R En (mini, maxi) Ek R  E1 x ... x Ei x ... x En Für jedes ei  Ei gibt es Mindestens mini Tupel der Art (..., ei, ...) und Höchstens maxi viele Tupel der Art (..., ei, ...) R

Komplex-strukturierte Entities Polyeder PolyID Beispiel- Polyeder 1 Hülle N Flächen FlächenID N Begrenzung M Kanten KantenID N StartEnde X M Y Punkte Z

Komplex-strukturierte Entities Polyeder PolyID Beispiel- Polyeder 1 (4, ) (1,1) (3, ) (2, 2) Hülle N Flächen FlächenID N Begrenzung M Kanten KantenID N StartEnde X M Y Punkte Z

Schwache, existenzabhängige Entities Höhe GebNr RaumNr Größe N 1 Gebäude liegt_in Räume 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

Prüfungen als schwacher Entitytyp Note 1 N Studenten ablegen Prüfungen PrüfTeil N N MatrNr umfassen abhalten PersNr VorlNr M M Vorlesungen Professoren Mehrere Prüfer in einer Prüfung Mehrere Vorlesungen werden in einer Prüfung abgefragt

Generalisierung Uni-Mitglieder Name is-a Studenten Angestellte PersNr MatrNr is-a Rang Assistenten Professoren Fachgebiet Raum

Universitätsschema voraussetzen (0,*) (0,*) VorlNr MatrNr Nach- folger Vorgänger hören Vorlesungen SWS Studenten Name (0,*) (3,*) (1,1) Titel (0,*) (0,*) Semester prüfen Note lesen (0,*) (0,*) Fachgebiet Rang (0,*) (1,1) arbeitenFür Professoren Assistenten Raum is-a PersNr Angestellte Name

Aggregation Fahrräder Teil-von Teil-von Rahmen Räder Teil-von Teil-von Rohre Lenker Felgen Speichen ... ... ... ...

... Aggregation und Generalisierung Fahrzeuge is-a Unmot.-Fahrzeuge Segler Fahrräder Motorräder Automobile Teil-von Teil-von Rahmen Räder Teil-von Teil-von Teil-von Teil-von Rohre Lenker Felgen Speichen ... ... ... ...

Drei Sichten einer Universitäts-Datenbank erstellen Titel Studenten Diplomarbeiten betreuen Assistenten Dissertationen verfassen Titel bewerten Professoren Sicht 1: Erstellung von Dokumenten als Prüfungsleistung

Sicht 2: Bibliotheksverwaltung Drei Sichten einer Universitäts-Datenbank Fakultät Bibliotheken besitzen Signatur Dokumente leiten Autoren entleihen Titel UniMitglieder Jahr Datum Sicht 2: Bibliotheksverwaltung

Sicht 3: Buchempfehlungen für Vorlesungen Drei Sichten einer Universitäts-Datenbank Vorlesungen Bücher Autoren empfehlen Titel Jahr Dozenten Verlag Sicht 3: Buchempfehlungen für Vorlesungen

Uni-Schema N M N M N N M 1 1 N 1 voraussetzen Nach- folger VorlNr MatrNr Vorgänger N M hören SWS Name Vorlesungen Studenten N M N N Titel Semester M lesen prüfen Note PersNr 1 1 Rang arbeitenFür Name Assistenten Professoren Raum N 1 Fachgebiet PersNr Name

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]}

Relationale Darstellung von Beziehungen ... AR1 R ... A21 E2 En ... An1 ... ... R:{[ ]}

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]}

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]}

Ausprägung der Beziehung hören MatrNr VorlNr 26120 5001 27550 4052 28106 5041 5052 5216 5259 29120 5049 29555 5022 25403 Vorlesungen VorlNr ... 5001 4052 Studenten MatrNr ... 26120 27550 VorlNr MatrNr N M Studenten Vorlesungen hören

Verfeinerung des relationalen Schemas lesen Vorlesungen Professoren N 1 1:N-Beziehung Initial-Entwurf Vorlesungen : {[VorlNr, Titel, SWS]} Professoren : {[PersNr, Name, Rang, Raum]} lesen: {[VorlNr, PersNr]}

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]} Regel Relationen mit gleichem Schlüssel kann man zusammenfassen aber nur diese und keine anderen!

Ausprägung von Professoren und Vorlesung Vorlesungen VorlNr Titel SWS Gelesen Von 5001 Grundzüge 4 2137 5041 Ethik 2125 5043 Erkenntnistheorie 3 2126 5049 Mäeutik 2 4052 Logik 5052 Wissenschaftstheorie 5216 Bioethik 5259 Der Wiener Kreis 2133 5022 Glaube und Wissen 2134 4630 Die 3 Kritiken Professoren PersNr Name Rang Raum 2125 Sokrates C4 226 2126 Russel 232 2127 Kopernikus C3 310 2133 Popper 52 2134 Augustinus 309 2136 Curie 36 2137 Kant 7 lesen Vorlesungen Professoren N 1

Vorsicht: So geht es NICHT Vorlesungen VorlNr Titel SWS 5001 Grundzüge 4 5041 Ethik 5043 Erkenntnistheorie 3 5049 Mäeutik 2 4052 Logik 5052 Wissenschaftstheorie 5216 Bioethik 5259 Der Wiener Kreis 5022 Glaube und Wissen 4630 Die 3 Kritiken Professoren PersNr Name Rang Raum liest 2125 Sokrates C4 226 5041 5049 4052 ... 2134 Augustinus C3 309 5022 2136 Curie 36 ?? lesen Vorlesungen Professoren N 1

Wissenschaftstheorie Anomalien Vorlesungen VorlNr Titel SWS 5001 Grundzüge 4 5041 Ethik 5043 Erkenntnistheorie 3 5049 Mäeutik 2 4052 Logik 5052 Wissenschaftstheorie 5216 Bioethik 5259 Der Wiener Kreis 5022 Glaube und Wissen 4630 Die 3 Kritiken Professoren PersNr Name Rang Raum liest 2125 Sokrates C4 226 5041 5049 4052 ... 2134 Augustinus C3 309 5022 2136 Curie 36 ?? 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

Relationale Modellierung der Generalisierung Fachgebiet Assistenten is_a Angestellte Professoren PersNr Name Raum Rang Angestellte: {[PersNr, Name]} Professoren: {[PersNr, Rang, Raum]} Assistenten: {[PersNr, Fachgebiet]}

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

Was kommt beim nächsten Mal? Anfragesprachen: SQL Mehrbenutzerbetrieb und Sperren Transaktionen Anbindung an Programmiersprachen Probleme der relationalen Datenbanktechnologie