Präsentation herunterladen
1
Objektorientierte Datenbanken
Ralf Möller, FH-Wedel Voraussetzungen: Datenbanken, Programmiersprachen Lernziele allgemein: Fundamente und Grundprinzipien von OODBen Systematische Entwicklung von Programmen Organisation: Vorlesung Übung
2
Ü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:
3
Literatur, Details und Zusatzinformationen
Präsentationen: 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
... Sicht1 Sicht 2 Sicht 3 Logische Ebene Physische Ebene Datenunabhängigkeit: physische Unabhängigkeit logische Datenunabhängigkeit
9
Datenmodellierung Ausschnitt der Realen Miniwelt
Manuelle/intellektuelle Modellierung Konzeptuelles Schema (ER-Schema) Halbautomatische Transformation Relationales Schema Objektorientiertes Schema ...
10
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
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
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
14
Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs Konzeptuelle Ebene Implementationsebene Physische Ebene
15
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
16
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
17
Funktionalitäten E1 E2 R ... R E1 x E2 E1 E2 1:N 1:1 N:1 N:M
18
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
19
Beispiel-Beziehung: betreuen
1 Professoren N betreuen Studenten 1 Seminarthemen Note betreuen : Professoren x Studenten Seminarthemen betreuen : Seminarthemen x Studenten Professoren
20
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.
21
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
22
(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
23
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
24
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
25
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
26
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
27
Generalisierung Uni-Mitglieder Name is-a Studenten Angestellte PersNr
MatrNr is-a Rang Assistenten Professoren Fachgebiet Raum
28
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
29
Aggregation Fahrräder Teil-von Teil-von Rahmen Räder Teil-von Teil-von
Rohre Lenker Felgen Speichen ... ... ... ...
30
... 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 ... ... ... ...
31
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
32
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
33
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
34
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
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
... AR1 R ... A21 E2 En ... An1 ... ... R:{[ ]}
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
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
40
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]}
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]} Regel Relationen mit gleichem Schlüssel kann man zusammenfassen aber nur diese und keine anderen!
42
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
43
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
44
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
45
Relationale Modellierung der Generalisierung
Fachgebiet Assistenten is_a Angestellte Professoren PersNr Name Raum Rang 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
Ähnliche Präsentationen
© 2025 SlidePlayer.org Inc.
All rights reserved.