Uni Göttingen
Institute for Informatics
Databases and Information Systems

dbis

Einführung in Datenbanken
WS2018/19

Prof. Dr. Wolfgang May,
Lars Runge, M.Sc., Sebastian Schrage, M.Sc.

Organisatorisches:

  • 3 SWS, d.h. insgesamt 21 Doppelstunden (entsprechend 14 (Wochen) a 3 Stunden).
    Es findet nicht jede Doppelstunde der oben angegebenen Termine statt, sondern insgesamt 21 Doppelstunden. Vorläufiger Terminplan: 17.10., [NICHT 18.10.], 24.10., 25.10., [31.10.Feiertag!], 1.11., 7.11., 8.11., 14.11., 15.11., 21.11., 22.11., 28.11., 29.11., 5.12., 6.12., 12.12., 13.12., 19.12., 20.12. [18 Termine in 2018]
    9.1., 10.1., 16.1., [17.1., 23.1., 24.1., 30.1., 31.1.]
  • 5 ECTS
  • Termin+Ort: Mi 14-16, Do 14-16, MN 30 (Chemie, Westseite).
    • MN 30: Das schwarze renovierte/neue Chemie-Hörsaalgebäude sieht so aus:
      Bild (Blick von Westen d.h. zwischen Chemie und Physik)
      Links (d.h.) im Norden des Gebäudes die Metalltreppe hoch, reingehen, dann rechts. Der MN30 befindet sich in der dem Betrachter zugewandten (Nordwest-)Ecke des Gebäudes.
  • Anmeldung: es gibt keine offizielle Anmeldung, keine Anwesenheitspflicht.
  • Übungen: es werden einige Übungsblätter zur Bearbeitung ausgegeben. Die Lösungen werden nicht eingesammelt/bewertet. Jeder soll selbstverantwortlich anhand der Aufgaben (ggf. auch gemeinsam) mit den Konzepten umgehen lernen. Die Musterlösungen werden regelmäßig im Kurs vorgestellt.
  • Prüfung (Klausur): Donnerstag, 21.2.2019, 14:00 Uhr MN08(+09)
    Klausuranmeldung wie immer über FlexNow.
    (In FlexNow stand lange Zeit als Termin "12:30 Uhr". Das war FALSCH. Dort wurde die Raumreservierung kopiert - die man natürlich großzügiger als die Netto-Klausurzeit macht).
    Schreibdauer diesmal 120 Minuten.

Info zur Veranstaltung

In dem Kurs wird eine Einführung in relationale Datenbanken gegeben.

Inhalt: konzeptuelle Modellierung (ER-Modell), relationales Modell, relationale Algebra (theoretische Grundlagen für Anfragekonzepte), SQL-Anfragen, -Updates und Schemaerzeugung.

In dem Kurs wird die Geographie-Datenbank "Mondial" eingesetzt.

  • SQL-Anfragen an Mondial können Sie über ein Web-Formular stellen.
  • Eine einfache Beschreibung, wie man Postgres mit Mondial auf dem eigenen Rechner unter Unix installiert finden Sie hier.

Terminplan

  • Mittwoch 17.10.: Erste Veranstaltung. 14:15-15:45 Uhr
    Organisatorisches, Einführung, Überblick , ...
    Folien "ER-Modell"
  • Do 18.10. KEINE VORLESUNG
  • Mi 24.10. Vorlesung
    Einführung: Intro, Grundbegriffe, 3-Ebenen-Architektur
  • Do 25.10. Vorlesung: ER-Modell
    1. Übungsblatt (ER-Modell und Umsetzung ER nach relational), Besprechung am 1./7./8.11.
  • Klausuranmeldung: Da zwei Räume (MN 08 + MN09) reserviert sind, gibt es leider in FlexNow zwei verschiedene Klausuranmeldungsmöglichkeiten. Tragen Sie sich bitte für die im MN08 ein (bei weniger als 95 Teilnehmern wird auch nur dieser Raum am Ende gebraucht). (UniVZ+FlexNow sind immer wieder ein Beispiel für ein nicht optimales Informationssystem)
  • Mi 31.10.: keine Veranstaltung - Reformationstag ist Feiertag in Niedersachsen
  • Do 1.11. Besprechung von Aufgabe 1 des ersten Übungsblattes, Vorlesung: Relationales Modell, Abbildung vom ER-Modell auf das relationale Modell
    Musterlösung Aufgaben 1+2
  • Mi 7.11. Besprechung Blatt 1, Rest von Aufgabe 1+2, Aufgabe 3; Vorlesung: Relationales Modell.
    Musterlösung Blatt 1;
    Folien "Relationales Modell"
  • Do 8.11. Besprechung Blatt 1, Aufgaben 4+6
  • Mi 14.11. Besprechung von Aufgabe 5 des ersten Übungsblattes, weiter in der Vorlesung.
  • FlexNow: Es sollte jetzt nur noch eine Variante des Anmeldetermins für die DB-Klausur existieren. Alle Teilnehmer wurden (hoffentlich) in die eine Liste kopiert
  • Do 15.11. Vorlesung: Formalisierung des relationalen Modells; Relationale Algebra.
    Folien "Relationale Algebra"
    2. Übungsblatt (Rel. Algebra); Besprechung am 21.11./28.11/4.12.2018
  • Mi 21.11. Besprechung von Aufgabe 1 von Blatt 2,
    Vorlesung: Relationale Algebra
  • Do 22.11. Vorlesung
  • Mi 28.11. Besprechung Aufgabe 2 von Blatt 2, Vorlesung Relationale Algebra (Cont'd)
    Musterlösung Blatt 2
  • Do 29.11. Besprechung Aufgabe 3 von Blatt 2, Vorlesung: Relationale Algebra (Cont'd), SQL
    Folien "SQL"
  • Vorankündigung Datenbankpraktikum SQL SS 2019
  • Mi 5.12. Besprechung weiterer Aufgaben von Blatt 2, Vorlesung: SQL
    3. Übungsblatt (SQL).
  • Do 6.12. Besprechung weiterer Aufgaben, Vorlesung: SQL
  • Mi 12.12. Besprechung Aufgabe 1 von Blatt 3, weiter in der Vorlesung (SQL) Musterlösung Blatt 3
  • Do 13.12. Besprechung von Aufgabe 2 von Blatt 3;
    Vorlesung: Rest von Kapitel 3, dann Kapitel 5 (SQL Syntax für Tabellenerzeugung und Updates)
    Folien "SQL - Diverses"
  • Mi 19.12. Besprechung der restlichen Aufgane von Blatt 3; Vorlesung: Rest von Kapitel 3.
  • Do 20.12. Kapitel 5 (SQL Syntax für Tabellenerzeugung und Updates)
    Folien "SQL - Diverses"
  • Zur Prüfungsvorbereitung: bisherige Klausuren siehe unten.
  • Vorlesungsfreie Zeit: 22. Dezember 2018 bis 6. Januar 2019
  • 9.1.: Rest von Kapitel 5, Zum Ende noch ein kurzer Überblick über die praxisrelevanten Aspekte der folgenden Kapitel.
    Kapitel 4: Interne Speicherungsaspekte Folien "Speicherung, Anfrageauswertung, Optimierung" im Überblick (Wiedersehen mit Algorithmen und Datenstrukturen aus Info I/III)
  • Hinweis: In der Klausur ist evtl. die Erzeugung eines Views sinnvoll.
    Siehe Folie 219, Kapitel 5.
  • 10.1.: Rest von Kapitel 4, Kapitel 6: Grundlagen des Mehrbenutzerbetriebs und Sicherheit: Transaktionen im Überblick:
    • Praktische Aspekte: (1) Warum man sich auf Korrektheit von Onlinebanking verlassen kann, und welche Probleme auftreten würden, wenn es keine Transaktionsverwaltung gäbe, (2) wie Transaktionen auch gegen die Folgen physikalischer Abstürze schützen.
    • Wenn Sie eine DB-Anwendung entwerfen: die eingebaute Transaktionsverwaltung macht das alles automatisch.
    • Algorithmik und Analyse: wie man einen exponentiellen Graphenalgorithmus durch einen einfachen linearen Algorithmus ersetzt - wenn man den Kern des Problems gefunden und verstanden hat.
    Folien "Transaktionen"
  • 16.1.: Rest von Kapitel 6 (Transaktionen), Kapitel 7, Designtheorie: Normalisierung
    wird nur kurz überflogen und kommentiert.
    Folien "Normalisierung"
    Wenn man ein gutes ER-Modell entworfen hat, braucht man sich mit diesem Problem (fast) nicht herumzuschlagen. Man sollte aber wissen, dass es so etwas gibt, falls man es mal braucht.
  • Zur Info: Zwei Stellenausschreibungen für Informatiker bei der Polizei Nordhessen: eine (Hinweis: A13 ist dieselbe Gehaltsstufe, wie z.B. ein Studienrat) und noch eine.
  • Veranstaltungsankündigungen für das Sommersemester 2019:
    • Praktikum Datenbankpraktikum SQL SS 2019 (BSc)
      Die Veranstaltung vertieft und erweitert die Kenntnisse in relationalen Datenbanken und SQL.
    • Vorlesung Semistructured Data and XML SS2019 (Advanced BSc/MSc)
      Diese Veranstaltung behandelt ein weiteres Datenmodell und seine Anfragesprachen: XML als kombiniertes Daten- und Dokumentenformat (das z.B. auch im Bereich Digital Humanities verwendet wird), mit XPath/XQuery und XSLT. Die Vorlesung ist -wie auch die DB-Vorlesung- praxisorientiert.
    • Vorlesung Deduktive Datenbanken SS2019 (Advanced BSc/MSc)
      Diese Veranstaltung behandelt das zweite "Elternteil" von SQL, den (logikbasierten) relationalen Kalkül. Darauf aufbauend werden regelbasierte, deduktive, "intelligente" Datenbanken/Datenbanksprachen der "Datalog"-Familie behandelt, die nicht "nur" einfache Anfragen beantworten können, sondern mit denen z.B. auch Planungsprobleme gelöst werden können. Als Vorlesung im Bereich Datenbanken/Symbolic Reasoning/KI richtet sich die Vorlesung an Studierende, die Interesse an theoretischen Ansätzen haben, und "Formale Systeme" gehört haben, oder parallel hören.
  • Mi 30.1. Fragestunde (wie üblich 14-16 im MN30): (solange/falls jemand da ist ...)
    Fragestunde - schicken Sie mir (möglichst konkrete) Fragen, was nochmal besprochen werden soll bitte per Mail.
    • irgendwelche Einzelthemen?
    • Bisher kam nur eine Frage: Erstellung eines ER-Modells an einer der bisherigen Klausuren vorführen. Dazu nehme ich dann die Aufgabe 1 aus der folgenden Klausur (noch etwas älter, bei der die Vorlesung noch die Kapitel 4 und 6 umfasste):
      Klausur WS0304 mit Musterlösungen
      Klausur WS0304 ohne Musterlösungen
      (Diese Themenstellung basiert -wie im Prinzip vieles in der DB-Vorlesung und dem SQL-Praktikum- auf dem Buch "Einsatz von Datenbanksystemen; Martin Dürr, Klaus Radermacher" von 1990 (!) an der Universität Karlsruhe. Damals wurde ausser SQL noch das ältere "Netzwerkmodell" besprochen, aber ansonsten war schon alles da, was heute in DB-Einführungsvorlesungen auch gemacht wird. Google-Auszug aus dem pdf)
  • Vorlesungsende 2.2.2019
  • 13.2. 14-16 Uhr MN30: noch eine Fragestunde (solange/falls jemand da ist ...) - schicken Sie mir (möglichst konkrete) Fragen, was nochmal besprochen werden soll bitte per Mail.
    Bisher eingegangene Fragen:
    • Aggregation im ER-Diagramm. Man kann grob sagen: wem das Konzept mit der Aggregation nicht liegt, kann es immer mit einem Radiergummi und der Einführung eines neuen Entitätstyps (="Reifikation") lösen (ein schönes Beispiel mit der Konsequenz "a subtle [modeling] difference with no practical impact" findet man hier (Folien 28 und 29)). Wobei die in diesem Beispiel gezeigte Lösung nur funktioniert, wenn die "dazukommende" Beziehung funktional ist. Da ist das Beispiel auf den DB-Folien besser.
      Das Original-Paper, in dem Aggregation im (Extended) ER-Modell eingeführt wurde (John Miles Smith, Diane C. P. Smith: Database Abstractions: Aggregation. In: Communications of the ACM. Band 20, Nr. 6, Juni 1977, S. 405–413), findet man hier (aber noch ohne grafische Notation, es ist daher eher unlesbar).
      Reifikation ist ein Modellierungsbegriff, der nicht speziell mit ER-Modell/Datenbanken zu tun hat, sondern auch in logischen Datenmodellen (XML, RDF) und in UML (z.B. Assoziationsklassen) sowie anderen Kontexten auftritt.
  • Klausur: Donnerstag 21.2.2019, 14:00 Uhr, MN 08 (420 Pl., Anzahl Anmeldungen am 14.2.: 144; ggf. zusätzlich MN 09 200 Pl.)
    Schreibdauer diesmal 120 Minuten. Der Aufgabentext ist etwas länger, das war der eigentliche Grund, die Zeit zu verlängern. Ansonsten ändert sich nichts.
    Stand 19.2.: vermutlich reicht der MN 08 alleine aus.

Aufzeichnungen der Vorlesungen

  • Die Vorlesung wurde in früheren Semestern teilweise aufgezeichnet. Die Aufzeichnungen sind hier zu finden. Falls nicht, mal hier versuchen (scheint an einer Fehlkonfiguration des Webservers zu liegen, der nicht mehr mappt, oder die Directory nicht mehr liefert).
  • Falls beim Anschauen folgendes auftritt: "Exception in thread "main" java.lang.OutOfMemoryError: Java heap space".
    Siehe hier:
    Das Problem kann man folgendermassen beheben:
    - Im Installationsverzeichnis des TeleTeachingTools:
    - ttt.bat und assoc_start.bat: Ändern des Eintrages von 128 auf einen groesseren Wert (200).
  • Fragen Sie uns (DBIS) nicht bei irgendwelchen technischen Problemen mit den Aufzeichnungen - wir haben keine Ahnung davon. Die Aufzeichnungen wurden im Rahmen des ELAN-Projektes am Math.Inst. durchgeführt.

Klausur

Klausurergebnis

Dokumentation

Literatur (optional)

  • A. Kemper, A. Eickler: Datenbanksysteme - Eine Einführung (In Deutsch), Oldenbourg.
  • R. Elmasri, S.B. Navathe: Grundlagen von Datenbanksystemen (dt. Übers.), Pearson Studium (1100 S., sehr ausführlich).
  • R. Elmasri, S.B. Navathe: Grundlagen von Datenbanksystemen - Ausgabe Grundstudium (dt. Übers.), Pearson Studium (550 S., nach Praxisrelevanz ausgewählte Themen).
  • G. Vossen: Datenmodelle, Datenbanksprachen und Datenbankmanagement-Systeme (In Deutsch). Addison-Wesley.
  • J. Ullman and J. Widom: A First Course in Database Systems. Prentice Hall
  • ... oder andere DB-Lehrbücher.