MARTIN-LUTHER-UNIVERSITÄT HALLE-WITTENBERG DATENBANKEN IIA
Institut für Informatik Wintersemester 2016/17
Prof. Dr. Stefan Brass [StudIP: Vorlesung]

 

 

Datenbanken IIA: Datenbank-Entwurf

Ablauf (Planung der zeitlichen Aufteilung)

Hier wird eine ungefähre Übersicht gegeben, wann welcher Stoff behandelt werden soll. Im Laufe des Semesters ist beabsichtigt, die Liste zu aktualisieren, und den tatsächlich behandelten Stoff einzutragen. Selbstverständlich sind alle Angaben unverbindlich.

Tatsächlicher Ablauf:

1. Donnerstag, 13.10.2016:
Kapitel 0: Informationen zur Vorlesung (Folie 0-1 bis 0-31)
Insbesondere Diskussion zum Projekt, zu Entwurfswerkzeugen, und zur Einrichtung der zweiten Übungsgruppe.
Kapitel 1: Einführung (Folie 1-1 bis 1-12)
Wiederholung zu grundlegenden Datenbank-Begriffen, Aufgabe des Datenbank-Entwurfs, Unterscheidung von drei Klassen von Entwurfsfehlern.
1. Donnerstag, 20.10.2016:
Kapitel 1: Einführung (Folie 1-11 bis 1-27)
Diskussion von Fehlern im Datenbankentwurf und Fehlern bei der Dateneingabe. Integritätsbedingungen. Flexibilität und Computer. Interpretation der Daten. Beispiele für mögliche Missverständnisse und Mehrdeutigkeiten. Klärung der Wichtigkeit historischer Information.
Kapitel 2: ER-Diagramme in Barker-Notation (Folie 2-39 bis 2-70, 2-112)
Einführung zu verschiedenen ER-Notation, Barker-Notation: Entities, Attribute, Relationsships. Kardinalitätsangaben für Relationsships: Vergleich von (min,max)-Notation, Barker-Notation, UML KLassendiagrammen. Beispiele für Relationships mit verschiedenen Kardinalitäten. Automatische Erzeugung von Sätzen, die Kardinalitäten beschreiben (in Oracle Designer). Notation für schwachte Entity-Typen.
3. Donnerstag, 27.10.2016:
Kapitel 2: ER-Diagramme in Oracle Designer (Folie 2-44 bis 2-121)
Wiederholung zu Entity-Typen und Beziehungen, Vergleich der Kardinalitäts-Notationen in Barker-Notation, Chen mit (min,max)-Kardinalitäten und UML-Klassendiagrammen. Mehrere Diagramme für ein Schema, Unterscheidung von Entities im globalen Schema (Repository) und auf einem konkreten Diagramm, Warnung vor "Müll"-Entities (nur im Repository, aber auf keinem Diagramm) bei späterer automatischer Übersetzung ins relationale Schema. Eigenschaften von Entity-Typen (Inhalt der Dialogboxen im Oracle Designer). Nutzen von Informationen über Anzahl Entities und Häufigkeit von Nullwerten für späteren physischen Entwurf. Domains, Aufzählungstypen, "Dynamic List", Beispiel: Noten in Pittsburgh, Schwache Entities.
4. Donnerstag, 03.11.2016:
Kapitel 2: ER-Diagramme in Oracle Designer (Folie 2-120 bis 2-138)
Association Entities, Subklassen/Spezialisierung, Arcs, Unübertragbare Relationsships.
Kapitel 3: Diskussion von Beispielentwürfen und Fehlern (Folie 3-1 bis 3-12)
Künstliche Schlüssel vs. natürliche Schlüssel (Namen), Diskussion eines alternativen Entwurfs zum Kino-Programm-Beispiel, Warum sind Fremdschlüssel in ER-Entwürfen falsch, zyklische Beziehungen, Beispiel: Data Dictionary.
5. Donnerstag, 10.11.2016:
Kapitel 4: Logischer Entwurf I (Folie 4-1 bis 4-40)
Vorteile des mehrstufigen Vorgehens (Entwurf im ER-Modell, dann Übersetzung ins relationale Modell), Ziele des logischen ENtwurfs, Übersetzung von Entity-Typen, Übersetzung von einns-zu-viele Beziehungen, Überstzung von viele-zu-viele Beziehungen, Alternative Überstzung von eins-zu-viele Beziehungen mit eigener Tabelle, Übersetzung von eins-zu-eins-Beziehungen, Umbenennung von Spalten bei Namenskonflikten und reservierten Worten.
6. Donnerstag, 17.11.2016:
Kapitel 4: Logischer Entwurf I (Folie 4-40 bis 4-75)
Diskussion von Beschränkungen der Übersetzung von ER-Schemata in relationale Schemata (minimale Kardinalität 1 bei viele-zu-viele Beziehungen und auf der "eins"-Seite von eins-zu-viele Beziehungen), Spezifikation und Überwachung allgemeiner Integritätsbedingungen, Übersetzung schwacher Entity-Typen, Diskussion über Reihenfolge der Ülbersetzung und zyklische Fremdschlüssel-Beziehungen, Übersetzung von Subklassen (Methode I: eine Tabelle für Oberklasse mit allen Attributen alle Unterklassen).
7. Donnerstag, 24.11.2016:
Kapitel 4: Logischer Entwurf I (Folie 4-75 bis 4-109)
Übersetzung von Subklassen in das relationale Modell, vier verschiedene Alternativen mit Diskussion von Vor- und Nachteilen, Beispiel für Integritätsüberwachung mit SQL-Skript, Codierung von Informationen in künstliche Schlüssel, so dass sie auf der Fremdschlüsselseite in CHECK-Constraints genutzt werden können. Diskussion zu redundanten Tabellen (die über eine Projektion mit Duplikateliminierung aus anderen Tabellen berechnet werden können) und Benutzerschnittstellen.
Kapitel 5: Logischer Entwurf II (Folie 5-1 bis 5-63)
Details über Benennung von Fremdschlüssel-Spalten und Beziehungstabellen. Propagierung von Änderungen im ER-Diagramm nach Übersetzung ins relationale Modell und änderung des relationalen Schemas. Server Model Diagrams (Diagramme relationaler Datenbank-Schemata) in Oracle Designer und Oracle SQL Developer Data Modeler. Beispiel für Schema-Übersetzung im Data Modeler.
8. Donnerstag, 01.12.2016:
Kapitel 6: Weitere ER-Konstrukte (Folie 6-1 bis 6-17)
Nutzen erweiterter ER-Konstrukte, Vorteile des ER-Entwurfs und anschließendem logischen Entwurf im Vergleich zu direktem relationalen Entwurf. Mehrwertige Attribute, Strukturierte Attribute (mit Record-Typ). Ternäre und n-äre Relationsships. Diskussion verschiedener Methoden zur Kardinalitäts-Spezifikation.
Kapitel 8: UML Klassendiagramme (Folie 8-1 bis 8-52)
Einleitung. Klassen, Attribute, Methoden. Diskussion zu leeren "Compartments" (Abteilen des Klassen-Rechtecks). Spezifikation der Anzahl von Objekten einer Klasse (insbesondere 1). Erweiterungsmechanismen von UML: Responsibilities, Stereotypes, Properties (u.a. persistent, transient). Constraints. Abgeleitete Attribute. Diskussion über Schlüssel in UML.
9. Donnerstag, 08.12.2016:
Kapitel 8: UML Klassendiagramme (Folie 8-52 bis 8-112)
Wiederholung (Klassen, Attribute, Erweiterungsmechanismen). Associations/Relationsships, ODMG ODL, Multiplicities/Kardinalitäten, Rollennamen, Gerichtete Beziehungen (Pointer), Verschiedene Collection-Typen für Beziehungen, Qualifier (Vergleich mit schwachen Entities, Index), Composition, Assoziations-Klassen, Nicht-binäre Assoziationen, Operationen.
10. Donnerstag, 15.12.2016:
Vorlesung muss leider ausfallen (wird ggf. nachgeholt).
11. Donnerstag, 05.01.2017:
Kapitel 8: UML Klassendiagramme (Folie 8-104 bis 8-141)
Operationen/Methoden in UML, Vergleich öffentlicher Attribute in Java mit Relationen in einer Datenbank (Einschränkung auf Lesezugriff möglich), Implementierung von Operationen in Datenbanken, Struktur/Architektur von Datenbank-Schema und Programmcode in einem Datenbank-Projekt, Generalisierung/Subklassen.
Kapitel 10: Stored Procedures, Triggers (Folie 10-1 bis 10-37)
Motivation for Server-Side Procedures, Oracle PL/SQL, First Example, Lexical Syntax, Data Types, Declarations, Expressions, Assignments, Procedure Calls, IF-Statement, Loop Statements (WHILE, LOOP-EXIT, FOR), SQL UPDATE, SQL Single Row SELECT, Cursors.
[Übung:] Kapitel 7: Reverse Engineering Relationaler Schemata (Folie 7-1 bis 7-?)
12. Donnerstag, 12.01.2017:
Vorlesung muss leider ausfallen (wieder aufgrund eines Berufungsverfahrens, wird voraussichtlich nachgeholt).
13. Donnerstag, 19.01.2017:
Kapitel 10: Stored Procedures, Triggers (Folie 10-36 bis 10-67)
Fehlerbehandlung: Exceptions, Exception-Handler (WHEN), raise_application_error, anonyme PL/SQL-Blöcke, Funktionen, Aufruf von Funktionen aus SQL, Packages, Benutzung in SQL*Plus, Data Dictionary Tabellen, Trigger in Oracle, Komponenten: ECA/Event-Condition-Action, "aktive Regeln", Row Trigger vs. Statement-Trigger, Ausführungs-Reihenfolge (BEFORE/AFTER), Zugriff auf die betroffene Zeile in Row Triggern (new, old), Terminierung und Konfluenz.
Kapitel 9: Relationale Normalformen (Folie 9-1 bis 9-15)
Motivation, Überblick, erste Normalform, funktionale Abhängigkeiten.
14. Donnerstag, 26.01.2017:
Kapitel 9: Relationale Normalformen (Folie 9-14 bis 9-82)
Funktionale Abhängigkeiten (FAen), FAen und Schlüssel, Implikation funktionale Abhängigkeiten, Bestimmung von Schlüsseln aus funktionalen Abhängigkeiten, Anomalien, Boyce-Codd-Normalform BCNF (Definition, Motivation/Begründung, Test), Dritte Normalform 3NF, Beziehung zu BCNF, Schlüsselattribute, Transitive Abhängigkeiten, Zweite Normalform 2NF, Aufspaltung von Relationen, Verlustlosigkeit von Aufspaltungen, Aufspaltungssatz (Hinreichende Bedingung für Verlustlosigkeit), Schema-Inäquivalenz bei Aufspaltung (Behebung von Einfüge- und Löschanomalie).

Planung (unverbindlich):

15. Donnerstag, 02.02.2017:
Kapitel 9: Relationale Normalformen (Folie 9-83 bis 9-136)
Kapitel 1: Einführung (Folie 1-20 bis 1-114)
(Objektrelationale Datenbanken oder Ontologien - sofern Zeit)
...
(Reserve, Auswertung, Projekt)
...

 


Stefan Brass (brass@informatik.uni-halle.de), 12. Oktober 2016

Original URL: http://www.informatik.uni-halle.de/~brass/dd16/ablauf.html   [XHTML 1.0 Checked]   [CSS Checked]   [Links Geprüft]   [Impressum]