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
- Klausur: Donnerstag, 21.2.2019, 14:00 Uhr, MN 08 (420 Pl.; 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.
-
Teilnahmevoraussetzungen/Prüfungsvorleistungen: keine. Die Übungsblätter
werden nicht eingesammelt, korrigiert, benotet etc, sondern in der Übung besprochen.
- Hinweis: bei der Klausur sind
keine Hilfsmittel
(ausser muttersprachlichen Wörterbüchern) erlaubt.
- Hinweis zum Klausurablauf (und Zeit): Sitzplätze sind alphabetisch mit Post-Its
gekennzeichnet. Auf den Klausuren ist der Name auch schon vorgedruckt.
Nach Ausgabe der Klausuren wird zuerst die gesamte Klausur einmal vor- bzw durchgelesen
(erleichtert den Einstieg in die Thematik). Danach beginnt die Zeit (üblicherweise
90 oder 120 Minuten) zu laufen.
- Zum Üben:
(Die Themenbereiche "Transaktionen" und "Interne Algorithmen und Datenstrukturen"
sind seit WS 0809 keine zentralen Hauptthemen der Vorlesung mehr; zu beiden Teilthemen
kommen keine separaten Aufgabe, aber evtl. Verständnisfragen.)
Klausur WS0809 mit Musterlösungen
Klausur WS0809 ohne Musterlösungen
Klausur WS0910 mit Musterlösungen
Klausur WS0910 ohne Musterlösungen
Klausur WS1011 mit Musterlösungen
Klausur WS1011 ohne Musterlösungen
Klausur WS1112 mit Musterlösungen
Klausur WS1112 ohne Musterlösungen
Klausur WS1213 mit Musterlösungen
Klausur WS1213 ohne Musterlösungen
Klausur WS1314 mit Musterlösungen
Klausur WS1314 ohne Musterlösungen
Klausur WS1415 mit Musterlösungen
Klausur WS1415 ohne Musterlösungen
Klausur WS1516 mit Musterlösungen
Klausur WS1516 ohne Musterlösungen
Klausur WS1617 mit Musterlösungen
Klausur WS1617 ohne Musterlösungen
Klausur WS1718 mit Musterlösungen
Klausur WS1718 ohne Musterlösungen
Empfehlung: Schauen Sie sich eine jetzt schon mal an, und rechnen Sie die anderen als
"Ernstfallübung" nach dem Ende der Vorlesungen durch.
Klausurergebnis
-
Statistik: pdf.
- Klausureinsicht:
Di 5.3., 14-15:30 Uhr in meinem Büro
Es ist keine spezielle Anmeldung erforderlich.
Danach gebe ich die Ergebnisse an das PA.
Weiterer Termin zur Klausureinsicht am Anfang der Vorlesungszeit: Di 16.4., 14-17 Uhr
-
Klausur WS1819 mit
Musterlösungen
Klausur WS1819 ohne
Musterlösungen
- Links zu den Zeitungsberichten, die der Klausuraufgabe zugrundeliegen (schade, manche
sind inzwischen nur im kostenpflichtigen FAZ-Angebot enthalten, aber sooo wichtig sind sie
ja im Detail auch nicht):
- Die Ergebnisse werden nach der ersten Klausureinsicht an das PA gemeldet.
- Studierende, die die Klausur bestanden haben, und am Datenbankpraktikum SQL SS 2019
teilnehmen möchten, können sich per Mail bei
may@informatik.uni-goettingen.de 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.
|