Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Objektorientierte Datenbanken

Ähnliche Präsentationen


Präsentation zum Thema: "Objektorientierte Datenbanken"—  Präsentation transkript:

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


Herunterladen ppt "Objektorientierte Datenbanken"

Ähnliche Präsentationen


Google-Anzeigen