MARTIN-LUTHER-UNIVERSITÄT HALLE-WITTENBERG VORLESUNG "DATENBANKEN I"
Institut für Informatik Wintersemester 2012/13
Prof. Dr. Stefan Brass [StudIP]

 

 

Datenbanken I

Ablauf (Planung der zeitlichen Aufteilung)

Die folgende Liste enthält eine ungefähre Übersicht, wann welcher Stoff behandelt wird. Im Laufe des Semesters ist beabsichtigt, die Liste zu aktualisieren, und den tatsächlich behandelten Stoff einzutragen. Der aktuelle Stand entspricht dem Ablauf im Wintersemester 2011/12. Eine Planung, wo vielleicht noch etwas Zeit gespart werden kann, um z.B. am Ende Anwendungsprogrammierung ausführlicher behandeln zu können, wird in naher Zukunft geschehen. Selbstverständlich sind alle Angaben unverbindlich.

Tatsächlicher Ablauf:

1. Mo, 08.10.2012:
Kapitel 0: Informationen zur Vorlesung / Organisatorisches (Folie 0-1 bis 0-37)
Kapitel 1: Einführung (Folie 1-1 bis 1-15)
Aufgabe einer Datenbank, Anfrage, Update, Zustand, Schema, Datenmodell.
2. Mi, 10.10.2012:
Kapitel 1: Einführung (Folie 1-15 bis 1-54)
Datenmodell, DDL, DML, Datenbankmanagementsystem (DBMS), Anwendungsprogramme, Client-Server-Architektur, Three-Tier-Architektur, Persistente Daten, Datenunabhängigkeit, Vergleich Datenbankanwendung - klassisches Programm mit Dateien, Deklarative Programmier-/Abfrage-Sprachen.
3. Mo, 15.10.2012:
Kapitel 1: Einführung (Folie 1-56 bis 1-96)
Logische Datenunabhängigkeit, Drei-Schema-Architektur, Transaktionen, Datensicherheit, DBMS-Anbieter, Klassifizierung von Datenbank-Nutzern.
Kapitel 2: Das relationale Datenmodell (Folie 2-1 bis 2-25)
Bedeutung des relationalen Modells, Beispiel-Datenbank, Datenwerte, Atomarität von Tabelleneinträgen, Relationales DB-Schema, Zustand, Notationen für Schemata.
4. Mi, 17.10.2012:
Kapitel 2: Das relationale Datenmodell (Folie 2-26 bis 2-66)
Nullwerte, Integritätsbedingungen, Schlüssel, Fremdschlüssel.
5. Mo, 22.10.2012:
Kapitel 2: Das relationale Datenmodell (Folie 2-64 bis 2-88)
Fremdschlüssel (Definition, Notationen, Beispiele), Fremdschlüssel und Schlüssel, Fremdschlüssel und Updates (passive vs. aktive Integritätssicherung).
Kapitel 3: Mathematische Logik mit Datenbank-Anwendungen (Folie 3-1 bis 3-32)
Einführung, Motivation, Geschichte, Signaturen, Interpretationen.
6. Mi, 24.10.2012:
Kapitel 3: Mathematische Logik mit Datenbank-Anwendungen (Folie 3-33 bis 3-83)
Einbettung von Datenmodellen in Logik (Abbildung von DB-Schema auf Signaturen und DB-Zuständen auf Interpretationen), Tupelkalkü und Bereichskalkül für das relationale Modell sowie Entity-Relationship-Modell als Spezialfälle der Prädikatenlogik, Variablendeklaration, Terme, atomare Formeln, Formeln, Klammerersparnis-Regeln.
7. Mo, 29.10.2012:
Kapitel 3: Mathematische Logik mit Datenbank-Anwendungen (Folie 3-83 bis 3-111)
geschlossene Formeln, freie Variablen, Variablenbelegungen, Wert eines Terms, Wahrheitswert einer Formel, Modell, konsistent, inkonsistent, Tautologie, Formeln in Datenbanken, Integritätsbedingungen, Anfragen, Bereichskalkül (kurz).
8. Mo, 05.11.2012:
Kapitel 3: Mathematische Logik mit Datenbank-Anwendungen (Folie 3-108 bis 3-132)
Anfragen in der Logik, Spezialfall Bereichskalkül, QBE, ER-Kalkül (kurz), Tupelkalkül [Beispiele an der Tafel].
9. Mi, 07.11.2012:
Kapitel 3: Mathematische Logik mit Datenbank-Anwendungen (Folie 3-133 bis 3-184)
[Verzögerung wegen Beamer-Ausfall] Tupelkalkül, Vergleich mit SQL, Bereichsunabhängigkeit, Implikationen und Äquivalenzen, Bedeutung für Datenbanken, Nullwerte, dreiwertige Logik.

Planung (unverbindlich):

10. Mo, 12.11.2012:
Kapitel 4: Relationale Algebra (Folie 4-1 bis 4-79)
Einführung, Bedeutung der relationalen Algebra, Selektion, erweiterte Selektion, Projektion, Projektion mit Umbennung und Datentyp-Operationen, Schachteln von Operationen, Basis-Operanden (Relationennamen, konstante Relationen), kartesisches Produkt, Umbenennung von Spalten, Basisoperationen vs. abgeleitete Operationen, Verbund, natürlicher Verbund, Äquivalenz von Anfragen, algebraische Gesetze, Anfragemuster: Verbund-Selektion-Projektion, Selbstverbund, Mengenoperationen (Vereinigung, Mengendifferenz, Schnitt).
11. Mi, 14.11.2012:
Kapitel 4: Relationale Algebra (Folie 4-74 bis 4-100, 4-112 bis 4-127)
Mengenoperationen (Vereinigung, Differenz, Schnitt), Monotone und nichtmonotone Anfragen, Notwendigkeit der Differenz, Anti-Join, Beispiel (höchste Punktzahl für HA 1), Vereinigung vs. Verbund, Äußerer Verbund (Outer Join), Grenzen der relationalen Algebra, streng relational vollständige Anfragesprachen, Übersetzung von Relationenalgebra in Bereichskalkül, Skizze für umgekehrte Richtung.
12. Mo, 19.11.2012:
Kapitel 5: SQL I (Folie 5-1 bis 5-75)
Bedeutung von SQL, Einfache SQL-Anfragen (eine Tabelle), von Relationenalgebra zu SQL, von Tupelkalkül zu SQL, Geschichtliches zu SQL, SQL Standards, Lexikalische Syntax (Leerplatz, Kommentare, Zahlkonstanten, Zeichenkettenkonstanten, Bezeichner, Reservierte Wörter, Delimited Identifier, ' vs. "), Deklaration von Tupelvariablen in der FROM-Klausel, Verbunde/Joins, Naiver Auswertungsalgorithmus mit geschachtelten Schleifen, Anfrageformulierung (von natürlicher Sprache zu SQL), Unnötige Verbunde, Selbstverbund, Beispiele für Fehler.
13. Mi, 21.11.2012:
Kapitel 5: SQL I (Folie 5-76 bis 5-130)
Terme (Skalare Ausdrücke), Optionalität von Tupelvariablen in Attribut-Referenzen, Datentyp-Operationen, Bedingungen (WHERE-Klausel), Bindungsstärke/Prioritäten von AND, OR, NOT, Vergleiche, Vergleiche von Zeichenketten, BETWEEN, LIKE, IN (mit explizit aufgezählter Menge von Werten), IS NULL, SELECT, *, DISTINCT.
14. Mo, 26.11.2012:
Kapitel 5: SQL I (Folie 5-117 bis 5-125, 5-131 bis 5-138)
dreiwertige Logik, Bedingungen mit Nullwerten, IS NULL, Überraschungen durch dreiwertige Logik, Algorithmus (hinreichende Bedingung) für "Wird eine gegebene Anfrage Duplikate liefern?", Diskussion über manchmal erwünschte Duplikate und "Schwache Schlüssel", Diskussion über Verwendung von Tupelvariablen in Attribut-Referenzen.
Kapitel 6: SQL II (Folie 6-1 bis 6-29)
Wiederholung zu nichtmonotonem Verhalten von Anfragen, NOT IN mit Unteranfragen, Diskussion zu DISTINCT in Unteranfragen, Verwendung von IN statt normalen Join zur Eliminierung bestimmter Duplikate, NOT EXISTS, korrelierte vs. nicht korrelierte Unteranfragen, Gütigkeitsbereiche von Variablen, Verfeinerte Regel zur Optionalität von Tupelvariablen in Attributreferenzen, Diskussion zur SELECT-Klausel in EXISTS-Unteranfragen, Beispiel für Allaussagen mit NOT EXISTS.
15. Mi, 28.11.2012:
Kapitel 6: SQL II (Folie 6-29 bis 6-74)
Allaussagen mit NOT EXISTS, Häufige Fehler mit Unteranfragen, IN vs. EXISTS (Verhalten bei Nullwerten), Unteranfragen mit ALL/ANY/SOME, Unteranfragen als Terme, Unteranfragen unter FROM, Aggregationsfunktionen, Einfache Aggregationen in SQL.
16. Mo, 03.12.2012:
Kapitel 6: SQL II (Folie 6-74 bis 6-113)
Wiederholung zu Aggregationsfunktionen, Syntaktische Restritionen bei einfachen Aggregationen, Nullwerte und Aggregationsfunktionen, GROUP BY, HAVING, Aggregationsunteranfragen, geschachtelte Aggregationen, UNION.
17. Mi, 05.12.2012:
Kapitel 6: SQL II (Folie 6-110 bis 6-154)
UNION, UNION ALL, Andere Mengenoperationen, Bedingte Ausdrücke, ORDER BY, SQL-92 Verbundsyntax, Outer Join, Diskussion möglicher Fehler beim Outer Join.
Kapitel 7: Data Warehouses und neuere SQL-Konstrukte (Folie 7-1 bis 7-10)
Einführung in Data Warehouses, Charakteristika von OLAP-Datenbanken vs. OLTP-Datenbanken, Multidimensionale Daten: "Data Cube".
18. Mo, 10.12.2012:
Kapitel 7: Data Warehouses und neuere SQL-Konstrukte (Folie 7-9 bis 7-66)
Multidimensionale Daten: "Data Cube", Stern-Schema (Fakten-Tabelle, Dimensions-Tabellen), Fortgeschrittene Gruppierung (ROLLUP, CUBE, GROUPING SETS), Top-N Anfragen, Window Functions/Analytic Functions (OVER, RANK).
19. Mi, 12.12.2012:
Kapitel 7: Data Warehouses und neuere SQL-Konstrukte (Folie 7-67 bis 7-83)
Implizite und Explizite Fenster im OVER-Konstrukt, mögliche Auswertung.
Kapitel 8: Einführung in das Entity-Relationship-Modell (Folie 8-1 bis 8-60)
Zweck des Datenbankentwurfes, Programme vs. Daten, Phasen des Datenbankentwurfes, Einordnung des ER-Modells, Grundlegende ER-Elemente (Entities, Attribute, Relationships), Graphische Syntax, Semantik, Integritätsbedingungen, Kartinalitäten (kurz).
20. Mo, 17.12.2012:
Kapitel 8: Einführung in das Entity-Relationship-Modell (Folie 8-56 bis 8-101)
(min,max)-Kardinalitäten, typische Fälle: Eins-zu-viele/Viele-zu-viele/eins-zu-eins Beziehungen, verpflichtende vs. optionale Teilnahme an Relationships, Alternative ER-Notationen (insbesondere für Kardinalitäten), Schlüssel, Diskussion über künstliche Schlüssel vs. natürliche Schlüssel, schwache Entity-Typen.
21. Mi, 19.12.2012:
Kapitel 8: Einführung in das Entity-Relationship-Modell (Folie 8-92 bis 8-119)
Wiederholung zu schwachen Entity-Typen, Association-Entity-Typen, Umwandlung von Relationships in Entity-Typen, Qualität von ER-Schemata.
Kapitel 9: Einführung in den logischen Entwurf (Folie 9-1 bis 9-24)
Wiederholung zu Gründen für das mehrstufige Vorgehen beim DB-Entwurf, Ziel des logischen Entwurfs, Übersetzung von Entity-Typen und Beziehungen in das relationale Modell.
Diskussion über Fragen des Datenbank-Entwurfs am Beispiel einer Feuerwerksartikel-Datenbank.
22. Mo, 07.01.2013:
Kapitel 9: Einführung in den logischen Entwurf (Folie 9-1 bis 9-41)
Übersetzung von ER-Schemata in das relationale Modell (Entity-Typen, 1:n Beziehungen, n:m Beziehungen, 1:1 Beziehungen, Beziehungs-Attribute, schwache Entity-Typen, Umgang mit Namenskonflikten, Umbenennung von Spalten und Relationen), Grenzen der Übersetzung, Methoden der Integritäts-Überwachung.
Kapitel 10: Tabellendefinitionen in SQL (Folie 10-1 bis 10-88)
Klassische SQL-Datentypen (u.a. CHAR, VARCHAR, NUMERIC, INT, REAL), Überblick zu Datentyp-Funktionen, Überblick zu weiteren Datentypen (u.a. CLOB, BLOB, DATE), CREATE TABLE Syntax (u.a. Unterschied Spaltenconstraints zu Tabellenconstraints).
23. Mi, 09.01.2013:
Kapitel 10: Tabellendefinitionen in SQL (Folie 10-87 bis 10-128)
Grundidee effizienter Integritätsüberwachung, Einschränkungen bei CHECK-Constraints, Constraint-Namen (Gründe dafür), Möglichkeiten zur aktiven Integritätssicherung bei Fremdschlüsseln, Defaultwerte für Spalten, Hinweis auf systemabhängige Möglichkeiten zur Generierung eindeutiger Nummern, CREATE SCHEMA, DROP TABLE, Hinweis auf ALTER TABLE
Kapitel 11: Einführung in relationale Normalformen (Folie 11-1 bis 11-6)
Motivation, Beispiel
Befragung zur Evaluation der Vorlesung
24. Mo, 14.01.2013:
Kapitel 11: Einführung in relationale Normalformen (Folie 11-1 bis 11-57)
Redundanz, Update-Anomalie, Einfügeanomalie, Löschanomalie, Funktionale Abhängigkeiten (FAen), FAen und Schlüssel, Triviale FAen, Implikation von FAen, Armstrong Axiome, Attribut-Hülle, Entscheidung der Implikation mittels Attribut-Hülle, Diskussion über Bestimmung von Schlüsseln aus FAen, Motivation für BCNF (Boyce-Codd-Normalform), Definition von BCNF, Prüfung auf BCNF, 3NF (Dritte Normalform), 3NF vs. BCNF, Aufspaltung von Relationen
25. Mi, 16.01.2013:
Kapitel 11: Einführung in relationale Normalformen (Folie 11-58 bis 11-68)
Synthesealgorithmus für 3NF, Ausführliche Diskussion zu 3NF vs. BCNF, Beispiel für Relation in 3NF und nicht in BCNF (mündlich), Verlustlosigkeit, Dekompositionssatz, Diskussion zur Schema-Inäquivalenz bei Aufspaltungen.
Kapitel 12: Updates in SQL / Mehrbenutzerbetrieb (Folie 12-1 bis 12-19, 12-24 bis 12-31)
INSERT, UPDATE, DELETE, COMMIT, ROLLBACK, autocommit, mündlicher Bericht über Undo-Möglichkeiten in SQL und in Oracle, ACID-Merkregel für Transaktionen, Atomarität, Dauerhaftigkeit
26. Mo, 21.01.2013:
Kapitel 12: Updates in SQL / Mehrbenutzerbetrieb (Folie 12-20 bis 12-23, 12-31 bis 12-70)
Neue Folien zur MERGE-Anweisung, Fortsetzung der ACID-Merkregel: Isolation, Konsistenz, Transaktions-Verwaltung in SQL (COMMIT, ROLLBACK, automatisches COMMIT), Illusion exklusiven Zugriffs auf ganze DB: "Ein-Terminal-Betrieb", Gründe für verschachtelte/parallele Abarbeitung von Transaktionen, Zielkonflikt: Isolation vs. Leistung, Sperren (X-Locks, S-Locks), Deadlock, Dirty Read Problem, Lösung mit Sperren und mit Multi-Version-Concurrency-Control, Lost Update Problem, FOR UPDATE
27. Mi, 23.01.2013:
Kapitel 12: Updates in SQL / Mehrbenutzerbetrieb (Folie 12-71 bis 12-85, 12-94, 12-111 bis 12-125)
Nonrepeatable Read Problem, Inconsistent Analysis Problem, Phantom Problem, LOCK TABLE, Isolationsstufen in SQL, Sperren auf verschiedenen Ebenen: Intent-Sperren, Theoretisches Modell für Transaktionen als Folge von read- und write-Anweisungen, Schedules, semantische Serialisierbarkeit, Konflikt-Serialisierbarkeit, Test mittels Konfliktgraph
Kapitel 13: Datenschutz: Zugriffsrechte in SQL (Folie 13-1 bis 13-17)
Motivation für DB-Sicherheit, Anforderungen, Benutzer-Authentifikation
28. Mo, 28.01.2013:
Kapitel 13: Datenschutz: Zugriffsrechte in SQL (Folie 13-18 bis 13-71)
Subjekt-Verb-Objekt-Modell für Zugriffsrechte in SQL, Einschränkungen/Probleme und Lösungen, Verkapselung von Objekten (Tabellen) durch Sichten und serverseitige Prozeduren (stored procedures), Discretionary Access Control vs. Mandatory Access Control, Schutz der Datenbank-Dateien, Einführung in das deutsche Datenschutzrecht, GRANT-Kommando in SQL, Zugriff auf Tabellen anderer Nutzer in Oracle, TO PUBLIC, WITH GRANT OPTION, Rechte des Besitzers einer Tabelle, REVOKE
Kapitel 14: Sichten (Views, Virtuelle Tabellen) (Folie 14-1 bis 14-38)
Motivation, Konzept, Übersetzung von Anfragen an Sichten, Vergleich mit Tabelle mit Anfrageergebnis, Materialisierte Sichten, Rekursive Sichten, Anwendungen von Sichten, "View Update Problem", Gründe/Anwendungen für Updates auf Sichten, Übersetzung von Updates von Sichten auf Basistabellen, Beispiele für unmögliche und mehrdeutige Übersetzungen, Updatebare Sichten nach dem SQL-Standard
29. Mi, 30.01.2013:

 


Stefan Brass (brass@informatik.uni-halle.de), 23. Oktober 2012

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