Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Objektorientierte Datenbanken zVoraussetzungen: yDatenbanken, Programmiersprachen zLernziele allgemein: yFundamente und Grundprinzipien von OODBen ySystematische.

Ähnliche Präsentationen


Präsentation zum Thema: "Objektorientierte Datenbanken zVoraussetzungen: yDatenbanken, Programmiersprachen zLernziele allgemein: yFundamente und Grundprinzipien von OODBen ySystematische."—  Präsentation transkript:

1 Objektorientierte Datenbanken zVoraussetzungen: yDatenbanken, Programmiersprachen zLernziele allgemein: yFundamente und Grundprinzipien von OODBen ySystematische Entwicklung von Programmen zOrganisation: yVorlesung yÜbung Ralf Möller, FH-Wedel

2 Übung zZiel: yVertiefung des Vorlesungsstoffes... y... durch Lösen von Aufgaben y... durch Beantwortung von Fragen zDurchführung: Christine Apfel, Katrin Fitz zTermin: Mi, 8.00 Uhr zOrt: RZ? zBeginn:

3 Literatur, Details und Zusatzinformationen  Präsentationen: Präsentationen:  Literatur: zWeitere Literatur wird noch bekanntgegeben...

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

5 Überblick über die Vorlesung zGrundlagen relationaler Datenbanken yER-Modellierung, Relationales Datenmodell, SQL yTransaktionen, Integrität, Probleme relationaler Datenbanktechnologie zObjektorientierte Modellierung (Entwurf) yStatische Aspekte: Objektidentiät, Typen, Klassen, Persistenzmodelle yDynamische Aspekte: Nachrichten, Methoden zJava Data Objects - JDO (Implementierung) yErzeugen persistenter Objekte, Transaktionen yMethodenimplementierungen in Java, Anfragen in JDOQL ySicherung von Integritätsbedingungen, Schema-Evolution

6 Überblick über die Vorlesung (2) zODMG-Standard yObject Definition Language yObject Query Language, Sprachanbindung (Java) zAspekte objektorientierter Datenmodelle in anderen Datenmodellen yPL/SQL yRDF/DAML+OIL

7 Motivation für Datenbank-Verwaltungssysteme Typische Probleme bei Informationsverarbeitung ohne DBMS zRedundanz und Inkonsistenz zBeschränkte Zugriffsmöglichkeiten zProbleme beim Mehrbenutzerbetrieb zVerlust von Daten zIntegritätsverletzung zSicherheitsprobleme zhohe Entwicklungskosten für Anwendungsprogramme

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

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

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

11 Logische Datenmodelle zRelationales Datenmodell zObjektorientiertes Datenmodell zDeduktives Datenmodell z...

12 Das relationale Datenmodell Studenten MatrNrName Fichte Jonas... hören MatrNrVorlNr Vorlesungen VorlNrTitel 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´; updateVorlesungen setTitel = `Grundzüge der Logik´ whereVorlNr = 5001;

13 LogdateienIndexeDatenbasisDatenwörterbuch Dateiverwaltung Mehrbenutzersynchr. Fehlerbehandlung DatenbankmanagerSchemaverwaltung Anfragebearbeitung DBMS DML-CompilerDDL-Compiler Anwendung Interaktive Anfrage Verwaltungs- werkzeug Präcompiler „Naive“ Benutzer Fortgeschrittene Benutzer Anwendungs- Programmierer Datenbank- administratoren Hintergrundspeicher Architekturübersicht

14 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene

15 Entity/Relationship-Modellierung zEntity (Gegenstandstyp) zRelationship (Beziehungstyp) zAttribut (Eigenschaft) zSchlüssel (Identifikation) zRolle Studenten Vorlesungen hören VorlNrTitelSWS MatrNrNameSemester Hörer Lehrveranstaltung

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

17 Funktionalitäten E1E1 E2E2 R... R  E 1 x E 2 1:N N:MN:M E1E1 E 2 1:1 N:1

18 Funktionalitäten bei n -stelligen Beziehungen E1E1 EnEn E2E2 EkEk R P MN 1 R : E 1 x... x E k-1 x E k+1 x... x E n  E k

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

20 Dadurch erzwungene Konsistenzbedingungen 1.Studenten dürfen bei demselben Professor bzw. derselben Professorin nur ein Seminarthema "ableisten" (damit ein breites Spektrum abgedeckt wird). 1.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: yProfessoren können dasselbe Seminarthema „wiederverwenden“ – also dasselbe Thema auch mehreren Studenten erteilen. yEin Thema kann von mehreren Professoren vergeben werden – aber an unterschiedliche Studenten.

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

22 (Min, Max)-Notation E2E2 R  E 1 x... x E i x... x E n E1E1 EnEn EkEk R (min 1 max 1 ) (min 2, max 2 ) (min i, max i ) (min n, max n ) Für jedes e i  E i gibt es Mindestens min i Tupel der Art (..., e i,...) und Höchstens max i viele Tupel der Art (..., e i,...)  R

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

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

25 Schwache, existenzabhängige Entities Gebäude liegt_in Räume HöheGebNr Größe RaumNr 1 N yBeziehung zwischen "starken" und schwachem Typ ist immer 1:N (oder 1:1 in seltenen Fällen) yWarum kann das keine N:M-Beziehung sein? yRaumNr ist nur innerhalb eines Gebäudes eindeutig ySchlüssel ist: GebNr und RaumNr

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

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

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

29 Aggregation Fahrräder Teil-von RahmenRäder Teil-von RohreLenkerFelgenSpeichen...

30 Rohre... Fahrräder Teil-von RahmenRäder Teil-von Lenker FelgenSpeichen Segler Motorräder Automobile is-a Unmot.-Fahrzeuge mot.-Fahrzeuge is-a Fahrzeuge Aggregation und Generalisierung

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

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

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

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

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 A 11 E1E1 R... AR1AR1 EnEn E2E2 An1An1 A 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 Studenten MatrNr hören MatrNrVorlNr Vorlesungen VorlNr Studenten hören Vorlesungen M N MatrNr VorlNr

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

41 Verfeinerung des relationalen Schemas 1:N-Beziehung zInitial-Entwurf Vorlesungen : {[VorlNr, Titel, SWS]} Professoren : {[PersNr, Name, Rang, Raum]} lesen: {[VorlNr, PersNr]} zVerfeinerung durch Zusammenfassung Vorlesungen : {[VorlNr, Titel, SWS, gelesenVon]} Professoren : {[PersNr, Name, Rang, Raum]} Regel Relationen mit gleichem Schlüssel kann man zusammenfassen aber nur diese und keine anderen!

42 Ausprägung von Professoren und Vorlesung Professoren PersNrNameRangRaum 2125SokratesC RusselC KopernikusC PopperC AugustinusC CurieC KantC47 Vorlesungen VorlNrTitelSWSGelesen Von 5001Grundzüge Ethik Erkenntnistheorie Mäeutik Logik Wissenschaftstheorie Bioethik Der Wiener Kreis Glaube und Wissen Die 3 Kritiken42137 Professoren Vorlesungen lesen 1 N

43 Vorsicht: So geht es NICHT Professoren PersNrNameRangRaumliest 2125SokratesC SokratesC SokratesC AugustinusC CurieC436?? Vorlesungen VorlNrTitelSWS 5001Grundzüge4 5041Ethik4 5043Erkenntnistheorie3 5049Mäeutik2 4052Logik4 5052Wissenschaftstheorie3 5216Bioethik2 5259Der Wiener Kreis2 5022Glaube und Wissen2 4630Die 3 Kritiken4 Professoren Vorlesungen lesen 1 N

44 Anomalien zUpdate-Anomalie: Was passiert wenn Sokrates umzieht zLösch-Anomalie: Was passiert wenn „Glaube und Wissen“ wegfällt zEinfügeanomalie: Curie ist neu und liest noch keine Vorlesungen Professoren PersNrNameRangRaumliest 2125SokratesC SokratesC SokratesC AugustinusC CurieC436?? Vorlesungen VorlNrTitelSWS 5001Grundzüge4 5041Ethik4 5043Erkenntnistheorie3 5049Mäeutik2 4052Logik4 5052Wissenschaftstheorie3 5216Bioethik2 5259Der Wiener Kreis2 5022Glaube und Wissen2 4630Die 3 Kritiken4

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

46 Zusammenfassung, Kernpunkte zGrundlagen von Datenbanksystemen yAufgaben eines Datenbank-Management-Systems yBenutzergruppen eines Datenbanksystems yArchitektur eines Datenbanksystems zGrundlagen relationaler Datenbanksysteme yEntwurfsebene: Entity-Relationship-Modell yImplementierungsebene: Das relationale Datenmodell

47 Was kommt beim nächsten Mal? zAnfragesprachen: SQL zMehrbenutzerbetrieb und Sperren zTransaktionen zAnbindung an Programmiersprachen zProbleme der relationalen Datenbanktechnologie


Herunterladen ppt "Objektorientierte Datenbanken zVoraussetzungen: yDatenbanken, Programmiersprachen zLernziele allgemein: yFundamente und Grundprinzipien von OODBen ySystematische."

Ähnliche Präsentationen


Google-Anzeigen