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. Mittwoch, 04.11.2020:
Kapitel 0: Informationen zur Vorlesung (Folie 0-1 bis 0-38)
Lernziele und Inhalte, Voraussetzungen, Erreichbarkeit des Dozenten, Übung, Projekt als Modulleistung statt der eigentlich geplanten Klausur, erwarteter Umfang des Projekts, Literatur, Software.
Kapitel 1: ER-Diagrams I: Entities, Attributes, Relationships (Folie 1-1 bis 1-22)
Bedeutung des ER-Modells, Entities, Datenwerte, Attribute, Relationship, Entity-Typen, Relationship-Typen, Unterschiede zwischen ER-Modell-Varianten, Barker-Notation für Entity-Typen, Unterschiede zwischen Oracle Designer (alt) und Oracle SQL Developer Data Modeler (neu), Barker-Notation für Relationships ("Krähenfuß-Notation").
2. Mittwoch, 11.11.2020:
Kapitel 1: ER-Diagrams I: Entities, Attributes, Relationships (Folie 1-16 bis 1-76)
...
3. Mittwoch, 18.11.2020:
Kapitel 2: ER-Diagrams II: Weak Entity Types, Subtypes (Folie 2-1 bis 2-45)
Domains, Weak Entity Types, Non-transferable Relationships, Specialization/Subclasses, Arcs.
4. Mittwoch, 25.11.2020:
Kapitel 3: Some General Remarks about Database Design (Folie 3-1 bis 3-53)
5. Mittwoch, 02.12.2020:
Kapitel 3: Some General Remarks about Database Design (Folie 3-59 bis 3-65)
Zusammenfassung: Aufgaben eines Datenbank-Projektes. Gründe, warum Datenbank-Entwurf nicht einfach ist. Was ein Datenbank-Entwickler auß dem ER-Modell noch wissen sollte.
Kapitel 4: Design Phases (Folie 4-1 bis 4-10)
Die drei klassischen Phasen des DB-Entwurfs, Gründe für mehrphasiges Vorgehen, Sichten-Integration. Hinweis auf "System Development Lifecycle" von Oracle und Management von Projekt-Risiken.
Kapitel 5: Logical Design I (Folie 5-1 bis 5-27)
Ziele und Anforderungen der Schema-Übersetzung beim Logischen Entwurf, Übersetzung von Entity-Typen, 1:n-Beziehungen, n:m-Beziehungen, Alternative Übersetzung von 1:n-Beziehungen.
6. Mittwoch, 09.12.2020:
Kapitel 5: Logical Design I (Folie 5-25 bis 5-65)
Wiederholung zur alternativen Übersetzung von 1:n-Beziehungen. Übersetzung von 1:1-Beziehungen. Umbenennung von Spalten. Bedeutung des ER-Diagramms auch später noch als Dokumentation für das relationale Schema. Grenzen der Schema-Übersetzung: Welche Kardinalitäten können nicht durch die Standard-Constraints des relationalen Modells sichergestellt werden? Überwachung allgemeiner Integritätsbedingungen. SQL-Anfragen zur Berechnung von Fehlermeldungen als formale und ausführbare Spezifikation. Trigger. Prüfung von Integritätsbedingungen in Anwendungsprogrammen. Behandlung von Integritätsverletzungen in Anwendungsprogrammen. Objektorientiertes Vorgehen: Änderung der Daten nur über serverseitige Prozeduren ("Methoden"). Bedeutung der Erfassung möglicher Updates beim DB-Entwurf. Elementare Transaktionen. n:m-Beziehungen mit verpflichtender Teilnahme. Exotische (und eher schlechte) Lösungen. Übersetzung schwacher Entity-Typen. Vergleich von Association Entity mit n:m-Beziehung mit Attribut.
Kapitel 6: Logical Design II (Folie 6-1 bis 6-9)
Kurze Besprechung von Methode I zur Übersetzung von Subklassen (eine Tabelle für Oberklasse und alle Unterklassen).
7. Mittwoch, 16.12.2020:
Kapitel 6: Logical Design II (Folie 6-1 bis 6-46)
Übersetzung von Spezialisierung (Unterklassen). Allgemeine Vorbemerkung zu Alternativen bei der Übersetzung eines ER-Konstrukts. Methode I: Tabelle nur für Oberklasse. Methode II: Tabellen nur für Unterklassen. Methode III: Tabellen nur für Ober- und Unterklassen, Fremdschlüssel in Unterklassen-Tabellen. Methode IV: Tabellen nur für Ober- und Unterklassen, Fremdschlüssel in Oberklassen-Tabelle. Jeweils ausführliche Besprechung von Einschränkungen/Problemen und möglichen Lösungen. Jeweils notwendige Integritätsbedingungen. Sichten, Updatebarkeit von Sichten. Diskussion zur Redundanz der Typ-Spalte bei Methode I. Trick mit Intervallen für Werte künstlicher Schlüssel, um Fremdschlüssel auf bestimmte Zeilen (Unterklasse) zu begrenzen. Varianten für partielle Spezialisierung (Oberklasse ist nicht abstrakt) und überlappende Spezialisierung. Aufspaltung von Fremdschlüsseln bei Methode II.
Letzte Kontrollen. Diskussion zu möglicherweise redundanten Tabellen.
Kapitel 8: Stored Procedures (Folie 8-1 bis 8-17)
Einleitung: Unterstützung von gespeicherten Prozeduren in heutigen DBMS, Vorteile von "Stored Procedures", Erweiterung der Sprache SQL durch eigene Datentypen und Trigger, zentrale Speicherung von Prozeduren (von "Datenbank" zu "Wissensbank"). Kurze Einfürung zu CREATE FUNCTION in PostgreSQL.
...

Planung (unverbindlich, wird noch aktualisiert):

[IM AUFBAU]

8. Mittwoch, 13.01.2021:
9. Mittwoch, 20.01.2021:
10. Mittwoch, 27.01.2021:
11. Mittwoch, 03.02.2021:
12. Mittwoch, 10.02.2021:
13. Mittwoch, 17.02.2021:
Prof. Dr. Stefan Brass
Impressum