Uni Göttingen
Institute for Informatics
Databases and Information Systems

dbis

Einführung in Datenbanken
WS 2019/20

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: 23./24.10., 30.10., [31.10], 6./7.11., 13./14.11., 20./21.11., 27./28.11., 4./5.12., 11./12.12., 18./19.12. (17 Termine vor Weihnachten),
    8./9.1., 15./16.1., [22./23.1.], [29./30.1.], [5./6.2.]
  • 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.
  • Wir versuchen (zum ersten Mal seit langem) StudIP zu "verwenden" (Anmeldeliste, ggf. Nachrichten an alle Teilnehmer). Mal sehen ob es was taugt ...
    Alle Materialien und Ankündigungen findet man HIER auf den "blauen DBIS-Seiten"
  • Ü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, 27.2.2020, 14:00 Uhr im Hörsaal ZHG 011 (Zentralcampus)
    Klausuranmeldung wie immer über FlexNow.
    (falls irgendwo die Zeitangabe "13-17 Uhr" auftaucht: das ist die Raumreservierung, nicht die reale Klausurzeit, UniVZ/FlexNow können das aber nicht immer sauber unterscheiden).
    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 23.10.: Erste Veranstaltung. 14:15-15:45 Uhr
    Organisatorisches, Einführung, Überblick , ...
    Folien "ER-Modell"
  • Do 24.10. Vorlesung
    Einführung: Intro, Grundbegriffe, 3-Ebenen-Architektur
  • Mi 30.10. Vorlesung ...
  • Do 31.10. Reformationstag ist Feiertag
  • Mi 6.11. Vorlesung: ER-Modell
    1. Übungsblatt (ER-Modell und Umsetzung ER nach relational), Besprechung am 13./14./20.11.
  • Do 7.11. Vorlesung: ER-Modell, Relationales Modell
    Folien "Relationales Modell"
  • Hier ist auch schon mal eine der alten Klausuren zum Reinschauen und als Beispiel:
    Klausur WS0809 mit Musterlösungen
    Klausur WS0809 ohne Musterlösungen
  • Mi 13.11. Besprechung von Aufgabe 1+2 des ersten Übungsblattes.
    Musterlösung Aufgaben 1+2
  • Do 14.11. Vorlesung: Relationales Modell, Umsetzung vom ER-Modell in das relationale Modell.
  • Mi 20.11. Besprechung von Aufgabe 3 des ersten Übungsblattes.
  • Do 21.11. Besprechung von Aufgaben 4-6 des ersten Übungsblattes.
    Musterlösung Blatt 1 (nach der Besprechung nochmal etwas ergänzt).
  • Mi 27.11. Vorlesung: Relationale Algebra.
    Folien "Relationale Algebra"
    2. Übungsblatt (Rel. Algebra); Besprechung am 4./5./11.12.2019
  • Do 28.11. Vorlesung: Relationale Algebra (bis vor das Outer Join)
  • Mi 4.12. Besprechung von Aufgabe 1+2 des zweiten Übungsblattes. [ Musterlösung ]
    Weiter in der Vorlesung ... noch schnell das Outer Join erledigt ...
  • Do 5.12. Vorlesung: Relationale Algebra (Cont'd)
  • Mi 11.12. Besprechung weiterer Aufgaben des zweiten Übungsblattes,
    evtl. ein bisschen weiter in der Vorlesung.
    Musterlösung Blatt 2
  • Do 12.12. Besprechung der Aufgaben 7+8 des zweiten Übungsblattes,
    Vorlesung: SQL
    Folien "SQL"
  • Mi 18.12. Besprechung Aufgabe 9 von Blatt 2, Vorlesung: SQL
    3. Übungsblatt (SQL).
  • Do 19.12. Vorlesung: SQL
  • Vorankündigung Datenbankpraktikum SQL SS 2020
  • Zur Prüfungsvorbereitung: bisherige Klausuren siehe unten.
  • Vorlesungsfreie Zeit: 21. Dezember 2019 bis 5. Januar 2020
  • Im neuen Jahr dann noch Besprechung von Blatt 3 und ein kurzer Überblick über die praxisrelevanten Aspekte der Kapitel 4, 6, 7.
  • Mi 8.1.2020: Besprechung von Blatt 3,
    Musterlösung Blatt 3
  • Do 9.1.2020: Besprechung der restlichen Aufgaben von Blatt 3.
    Weiter mit Kapitel 5 (SQL Syntax für Tabellenerzeugung und Updates)
    Folien "SQL - Diverses".
  • Mi 15.1. und Do 16.1.:
    Zum Ende noch ein kurzer Überblick über die praxisrelevanten Aspekte der folgenden Kapitel:
    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.
    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"
    Kapitel 4: Interne Speicherungsaspekte: Folien "Speicherung, Anfrageauswertung, Optimierung" im Überblick (Wiedersehen mit Algorithmen und Datenstrukturen aus Info I/III und mit Betriebssystem-Aspekten (Caching))
  • Vorlesungsevaluierung: automatisch per StudIP. Wird laut Eval-Ankündigung voraussichtlich am 20.1. freigeschaltet, läuft 14 Tage. Dieselben (teilweise nicht so sehr sinnvollen) vordefinierten Fragen wie immer. Nutzen Sie ggf. die Freitextfelder für Feedback.
  • Veranstaltungsankündigungen für das Sommersemester 2020:
    • Praktikum Datenbankpraktikum SQL SS 2020 (BSc, Modul "Fachpraktikum 1-2-3")
      Die Veranstaltung vertieft und erweitert die Kenntnisse in relationalen Datenbanken und SQL.
    • Vorlesung Semistructured Data and XML SS2020 (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 Deductive Databases SS2020 (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.
  • 22./23./29./30.1./5.2./6.2. keine Vorlesungen mehr
  • 21.1.: hier ein interessanter Zeitungsartikel in der FAZ zum Gehalt von Informatikern.
  • 22.1.: Die online-Vorlesungsevaluierung in StudIP müsste inzwischen freigeschaltet sein (es gab da wohl etwas Probleme bei der Technik von EvaSys+StudIP); sollte 2 Wochen lang laufen.
  • 31.1.2020:    delete from ismember where country='GB' and organization='EU';
  • Ergebnisse der Vorlesungsevaluierung
    • Tafelbild: Das ist eigentlich kein Tafelbild, sondern eher Skizzen. Hier zählt die Dynamik, das Entstehen (und Mitdenken) in der Vorlesung. Das Ergebnis sieht damit nie optimal aus - dazu gibts ja in Ruhe ausgearbeitete Folien und Musterlösungen auf der Webseite.
    • Das Vorgreifen und Herumspielen mit späteren Stoff (=SQL) in der Vorlesung ist auch Absicht, um dabei schon ein bisschen zu zeigen, wo das ganze hinführt. Später wird es ja dann systematisch behandelt.
  • Vorlesungsende 7.2.2019
  • 20.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.
    • Natural Join (Aufg 2.2) [welche Zellen/Spalten/Reihen fallen weg?]
    • Verschiedene Arten von Joins ... Natural/inner Join (das "normale", wobei Equi-Joins ein Sonderfall sind), Semijoin R leftsemijoin S (entspricht "alle Tupel aus R, die ein S ein (natural-)Join-Gegenstück finden würden - was damit dem Existenzquantor entspricht), outer join.
    • CREATE TABLE, UNIQUE (Primary Key: UNIQUE und NOT NULL, verwendbar für Foreign-Key-Referenzen; UNIQUE: wenn man noch eine weitere Attribut(kombination) eindeutig haben will (country.name, city.lat/long), nimmt man UNIQUE mit/ohne NOT NULL)
    • Relationale Division in SQL. so: { x | forall y: p(x,y)} = { x | not exists y: not (p(x,y))} =
       select * from allX where not exists (select y from allY where (x,y) not in (select (_x,_y) from p))
  • 26.2.: Nach 208 Anmeldungen zum Anmeldeschluss vor einer Woche waren es heute zum Abmeldeschluss noch 136 (das ist normal, letztes Jahr waren es etwas mehr als 150 Anmeldungen, und 100 noch zum Klausurzeitpunkt). Damit genügt der Raum ZHG 011.
  • Donnerstag, 27.2.2020, 14:00 Uhr im Hörsaal ZHG 011 (Zentralcampus)
    Schreibdauer diesmal 120 Minuten.

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

  • Statistik: Notenspiegel.
  • Klausureinsicht:
    Keine Ahnung, wie man das zur Zeit machen soll. Bisher waren sowieso immer nur wenige Studierende zur Klausureinsicht da. D.h, wenn das nicht zuviele sind: wer seine/ihre Klausur sehen will, soll mir eine Mail schicken, ich schaue dann mal, ob sich das mit einigermassen vertretbarem Aufwand scannen lässt (der Scanner mag keine lädierten Blätter) und schicke sie dann als pdf.
  • Klausur WS1920 mit Musterlösungen
    Klausur WS1920 ohne Musterlösungen (Punktevergabe etwas geändert: je 1P von 3g und 4 nach 3b)
  • Studierende, die die Klausur bestanden haben, und am Datenbankpraktikum SQL SS 2020 teilnehmen möchten, können sich im StudIP anmelden.

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.