Nicht-Standard Datenbanksysteme
News
- Die Vorlesung findet ab 19.03.2019 von 08:00-9:30 Uhr in HS T02 statt.
- Die Vorbesprechung für das Proseminar findet am 05.03.2019 um 10:00 Uhr im HS T02 statt.
- Wir weisen ausdrücklich zu Beginn des Semesters darauf hin, dass am 30.04.2019 und 07.05.2019 KEIN Proseminar stattfindet. Wir bitten die Studierenden dies in ihrer Zeitplanung zu berücksichtigen.
Allgemeines
Die Anforderungen moderner Systeme an das Datenmanagement entfernen sich zunehmend von den klassischen Annahmen relationaler Datenbanksysteme: Die Hardware hat sich verändert (großer RAM, viele Prozessoren), die Daten sind sehr variabel und lassen sich schwer in ein starres, relationales Schema zwängen, Web Applikationen mit Tausenden von simultanen Benutzern fordern hohe Belastbarkeit der Systeme, usw. Diese Lehrveranstaltung beschäftigt sich mit Themen aus diesem Bereich die in den letzen Jahren besondere Aktualität erlangt haben, z.B. parallele Datenbanken, verteilte Datenbanken, Hauptspeicherdatenbanken, NOSQL Datenbanken.
Vorlesung:
- Vorlesungstermine (PlusOnline)
- Prüfungstermine werden in PlusOnline bekannt gegeben. Die An- und Abmeldung zur Prüfung ist bis 48 Stunden vor dem Prüfungszeitpunkt möglich. Bei Fernbleiben von einer Prüfung ohne Abmeldung erfolgt eine Sperre gemäß den Satzungen der Universität.
Proseminar:
- Proseminartermine (PlusOnline)
Vorlesung
Zu manchen Themen gibt es Folien, die rechtzeitig online gestellt werden. Der Stoff der Vorlesung ist großteils durch Lehrbücher abgedeckt; die entsprechende Literatur wird referenziert. Für einige Vorlesungseinheiten wird von den Studierenden erwartet, dass sie vor der Vorlesung die entsprechende Pflichtlektüre lesen; während der Vorlesung wird in diesem Fall eine gewisse Vertrautheit mit dem Thema vorausgesetzt.
Folien
Thema | Datum | Folien | Literatur | Pflichtlektüre | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Database System Architectures | 2019-03-12 | [1x1][2x2] | DSC 17 | |||||||
2019-03-19 | DSC 17 | |||||||||
Parallel Databases | 2019-03-26 | [1x1][2x2] | DSC 18 | DSC 18.1–18.2 | ||||||
2019-04-02 | [1x1][2x2] | DSC 18.3–18.5 | ||||||||
2019-04-09 | [1x1][2x2] | DSC 18.6–18.9 | ||||||||
Distributed Databases | 2019-04-30 | [1x1][2x2] | DSC 19 | DSC 19.1–19.3 | ||||||
2019-05-07 | 2-Phase-Commit Persistent Messaging |
DSC 19.4 | ||||||||
2019-05-14 | Distributed Locking | DSC 19.5 | ||||||||
2019-05-21 | ||||||||||
2019-05-28 | ||||||||||
2019-06-04 | DSC 19.6 | |||||||||
2019-06-18 | DSC 19.7 | |||||||||
Voraussetzungen
- Grundlagen Transaktionen:
- DSC 14.1–14.2, 14.4–14.6
-
- Concurrency Control:
- 2-Phase Locking (2PL): DSC 15.1.3
Timestamp-Based Protocols: DSC 15.4
Deadlocks: DSC 15.2
Literatur
- DSC — Database System Concepts
- Silberschatz, Korth, Sudarshan. Database System Concepts.. McGraw-Hill, 2011, 6th edition.
Multiple copies of the book are available in the textbook collection of the department library (Fachbibliothek Itzling). - ADM — Advanced Data Management
- Wiese. Advanced Data Management. de Gruyter / Oldenbourg, 2015.
- MMDS — Foundations of Multidimensional and Metric Data Structures
- Samet. Foundations of Multidimensional and Metric Data Structures. Morgan Kaufmann, 2006.
Prüfung
Die Prüfung zur Vorlesung ist mündlich. Der Prüfungsstoff schließt Folien, Literatur und Pflichtlektüre aus der obigen Tabelle sowie ergänzende Stoffinhalte aus der Vorlesung (Mitschrift) ein.
Die An- und Abmeldung zur Prüfung ist bis 48 Stunden vor dem Prüfungszeitpunkt möglich. Bei Fernbleiben von einer Prüfung ohne Abmeldung erfolgt eine Sperre gemäß den Satzungen der Universität.
Proseminar
Wir weisen ausdrücklich zu Beginn des Semesters darauf hin, dass am 30.04.2019 und 07.05.2019 KEIN Proseminar stattfindet. Wir bitten die Studierenden dies in ihrer Zeitplanung zu berücksichtigen.
Abhaltemodus
Im Proseminar wird über das Semester hinweg an einem praktischen Projekt gearbeitet. Die Bearbeitung erfolgt in Gruppen zu je 3 Personen. Zu Beginn wählt jede Gruppe ein Datenbanksystem aus und definiert eine passende Applikation. Die Programmiersprache kann prinzipiell frei gewählt werden. Als Datenbanksystem muss ein System gewählt werden, das nicht zu den traditionellen relationalen Datenbanksystemen (wie bspw. PostgreSQL) gezählt wird. Das inkludiert Systeme aus den NoSQL- und NewSQL-Bewegungen sowie verteilte Frameworks für sehr große Datenmengen (bspw. Apache Spark).
Während des Semesters wird es drei Checkpoints (Meilensteine) geben. Zu Checkpoints 1 und 2 erstellen die Studierenden einen Bericht (in LaTeX verfasst), der eine Ergebnis-Zusammenfassung des jeweiligen Checkpoints darstellt. Für jeden Bericht werden die wichtigsten Punkte/Fragen vordefiniert, die zu bearbeiten sind. Am Ende des Semesters präsentiert jede Gruppe ihr fertiges Projekt (Checkpoint 3). Im Zuge dieser Präsentation soll auch auf systemspezifische Aspekte des verwendeten Datenbanksystems eingegangen werden. Diese Aspekte werden vorher definiert und machen circa 1/3 der Gesamtpunkte von Checkpoint 3 aus. Werden die vordefinierten Aspekte nicht ausreichend während der Präsentation behandelt, werden im Anschluss entsprechende Fragen vom LV-Leiter gestellt. Für jeden Checkpoint sind die Beurteilungskriterien im Voraus festgelegt (wie viele Punkte werden wofür vergeben). Siehe u.a. Bewertung für Details.
Nach erfolgreicher Abgabe eines Berichts wird es pro Gruppe eine Besprechung mit dem LV-Leiter geben. Bei dieser Besprechung wird der Inhalt des Berichts diskutiert und bewertet (nach den Kriterien des zugehörigen Checkpoints). Die Bewertung erfolgt pro Person je nach Beitrag zum Gesamtergebnis und muss nicht für alle Mitglieder der Gruppe gleich sein. Nur Gruppenmitglieder, die bei der Besprechung anwesend sind, erhalten Punkte für den entsprechenden Checkpoint.
Checkpoint-Übersicht
Max. Punkte | Deadline | Besprechung | Template | |||||||
---|---|---|---|---|---|---|---|---|---|---|
Regulär + Bonus | ||||||||||
1. | Checkpoint 1 | 5 + 2 | 28.03.2019, 23:55 | 02.04.2019, 10:00 | [TAR.GZ] | |||||
TBA | ||||||||||
2. | Checkpoint 2 | 10 + 1 | 30.05.2019, 23:55 | 04.06.2019, 10:00 | [TEX] | |||||
TBA | ||||||||||
3. | Checkpoint 3 | 10 | 25.06.2019, 23:55 | 25.06.2019, 08:00 | --- | |||||
HS T02 |
Terminübersicht
Datum | Thema | |||
---|---|---|---|---|
05.03.2019 | Preliminary talk; Checkpoint discussion | --- | ||
12.03.2019 | Checkpoint 1 — On-demand session | --- | ||
19.03.2019 | Checkpoint 1 — On-demand session | --- | ||
26.03.2019 | Checkpoint 1 — On-demand session | --- | ||
02.04.2019 | Checkpoint 1 — Final meeting | --- | ||
09.04.2019 | Checkpoint 2 — On-demand session | --- | ||
16.04.2019 | --- | --- | ||
23.04.2019 | --- | --- | ||
30.04.2019 | --- | --- | ||
07.05.2019 | --- | --- | ||
14.05.2019 | Checkpoint 2 — On-demand session | --- | ||
21.05.2019 | Checkpoint 2 — On-demand session | --- | ||
28.05.2019 | Checkpoint 2 — On-demand session | --- | ||
04.06.2019 | Checkpoint 2 — Final meeting | --- | ||
11.06.2019 | --- | --- | ||
18.06.2019 | Checkpoint 3 — On-demand session | --- | ||
25.06.2019 | Checkpoint 3 — Presentations | --- |
Gruppeneinteilung
Gruppe | Mitglieder | ||
---|---|---|---|
1 | Großegesse, Huber, Ungerhofer | ||
2 | Dafir, Lindlbauer, Möschl | ||
3 | Klettner, Kremser, Müller | ||
4 | Schmitzberger, Steger, Thiel | ||
5 | Kurtz, Lassnig, Rothschadl, Wolff | ||
6 | Geissbauer, Maislinger, Schubert | ||
7 | Kutil, Mühlegger |
Einteilung Checkpoint 1
Die Besprechungen bzgl. Checkpoint 1 finden in Time Slots zu je 20 Minuten statt. Im Folgenden finden Sie die Startzeiten und Gruppennummer der jeweiligen Time Slots.
Date | 02.04.2019 | 02.04.2019 | 02.04.2019 | 02.04.2019 | 02.04.2019 | 02.04.2019 | 05.04.2019 | ||||||||
Room | SR T05 | SR T05 | SR T05 | SR T05 | SR T05 | SR T05 | SR T05 | ||||||||
Time Slot | 10:00 | 10:25 | 10:50 | 11:15 | 11:40 | 13:00 | 13:00 | ||||||||
Gruppe | 1 | 2 | 3 | 6 | 7 | 5 | 4 |
Einteilung Checkpoint 2
Die Besprechungen bzgl. Checkpoint 2 finden in Time Slots zu je 20 Minuten statt. Im Folgenden finden Sie die Startzeiten und Gruppennummer der jeweiligen Time Slots.
Date | 04.06.2019 | 14.06.2019 | 04.06.2019 | 13.06.2019 | 14.06.2019 | 13.06.2019 | 13.06.2019 | ||||||||
Room | SR T06 | SR T05 | SR T06 | SR T05 | SR T05 | SR T05 | SR T05 | ||||||||
Time Slot | 10:25 | 12:00 | 11:40 | 16:40 | 08:00 | 15:50 | 16:15 | ||||||||
Gruppe | 2 | 3 | 7 | 1 | 4 | 5 | 6 |
Einteilung Checkpoint 3
Die Präsentationen finden in Time Slots zu je 15 + 5 Minuten statt (Präsentation + Fragen). Im Folgenden finden Sie die Startzeiten und Gruppennummer der jeweiligen Time Slots.
TBA nach den Final Meetings von Checkpoint 1.
Unterlagen
Um einen schnelleren Überblick über die verfügbaren Nicht-Standard Datenbanksysteme (im Kontext dieser Lehrveranstaltung) zu erhalten, stellen wir eine kurzes Survey als PDF zur Verfügung: Overview on non-standard database systems
Im Folgenden finden Sie eine Liste von vorgeschlagenen Unterlagen, die die Bearbeitung der Checkpoints erleichtern sollen. Das Studium der Unterlagen ist optional. Die Liste stellt keinen Anspruch auf Vollständigkeit.
Literatur
- 7D7W — Seven Databases in Seven Weeks: A Guide to Modern Databases and the NoSQL Movement
- Redmond and Wilson. Seven Databases in Seven Weeks: A Guide to Modern Databases and the NoSQL Movement. The Pragmatic Bookshelf, 2012.
- ADM — Advanced Data Management
- Wiese. Advanced Data Management. de Gruyter / Oldenbourg, 2015.
- FDB — Fundamentals of Database Systems (7th Edition)
- Kapitel 23, 24 und 25. Elmasri and Navathe. Fundamentals of Database Systems (7th Edition). Pearson, 2016.
Papers
Empfohlene Papers sind markiert.
- H. Garcia-Molina and K. Salem. Main Memory Database Systems: An Overview, in IEEE TKDE, 1992.
- J. Dean and S. Ghemawat. MapReduce: Simplified Data Processing on Large Clusters, in USENIX OSDI, 2004.
- M. Stonebraker, et al. C-Store: A Column-oriented DBMS, in PVLDB, 2005.
- F. Chang, et al. Bigtable: A Distributed Storage System for Structured Data, in USENIX OSDI, 2006.
- G. DeCandi, et al. Dynamo: Amazon's Highly Available Key-value Store, in ACM SOSP, 2007.
- M. Stonebraker, et al. The End of an Architectural Era (It's Time for a Complete Rewrite), in PVLDB, 2007.
- R. Kallmann, et al. H-Store: A High-Performance, Distributed Main Memory Transaction Processing System, in PVLDB, 2008.
- D. Abadi, et al. Column-Stores vs. Row-Stores: How Different Are They Really?, in ACM SIGMOD, 2008.
- W. Vogels. Blog post on Eventually consistency, in Communications of the ACM, 2009.
- D. Abadi, et al. Column-oriented Database Systems, in PVLDB, 2009.
- M. Stonebraker. Blog post on SQL vs. NoSQL databases, in Communications of the ACM, 2010.
- A. Lakshman and P. Malik. Cassandra: A Decentralized Sturctured Storage System, in ACM SIGOPS Oper. Syst. Rev., 2010.
- R. Cattell. Scalable SQL and NoSQL Data Stores, in ACM SIGMOD, 2010.
- M. Zaharia, et al. Spark: Cluster Computing with Working Sets, in USENIX HotCloud, 2010.
- M. Grund, et al. HYRISE – A Main Memory Hybrid Storage Engine, in PVLDB, 2010.
- M. Stonebraker. Blog post on NewSQL, in Communications of the ACM, 2011.
- A. Kemper and T. Neumann. HyPer: A Hybrid OLTP&OLAP Main Memory Database System Based on Virtual Memory Snapshots, in IEEE ICDE , 2011.
- J. Baker, et al. Megastore: Providing Scalable, Highly Available Storage for Interactive Services, in CIDR, 2011.
- M. Stonebraker. Blog post on NewSQL opportunities, in Communications of the ACM, 2012.
- V. Sikka, et al. Efficient Transaction Processing in SAP Hana Database: The End of a Column Store Myth, in ACM SIGMOD, 2012.
- J. C. Corbett, et al. Spanner: Google's Globally-Distributed Database, in USENIX OSDI, 2012.
- F. Färber, et al. The SAP Hana Database – An Architecture Overview, in IEEE Data Eng. Bull., 2015.
- M. Kleppmann, et al. Kafka, Samza and the Unix Philosophy of Distributed Data, in IEEE Data Eng. Bull., 2015.
- P. Carbone, et al. Apache Flink™: Stream and Batch Processing in a Single Engine, in IEEE Data Eng. Bull., 2015.
- A. Pavlo and M. Aslett. What's Really New with NewSQL?, in ACM SIGMOD, 2016.
Systems
- Riak
- Redis
- Apache HBase
- Apache Cassandra
- MongoDB
- Apache CouchDB
- Neo4J
- Apache TinkerPop
- CockroachDB
- H-Store
- Apache Hadoop
- Apache Spark
- Apache Flink
Q&A
Es besteht die Möglichkeit Fragen über den Slack-Channel #nsdb zu stellen. Dies ist der bevorzugte Weg für die Kommunikation mit dem LV-Leiter bzgl. der Checkpoints außerhalb des Proseminars. Jeder Studierende kann sich für den Channel #nsdb anmelden und zur Diskussion beitragen.
Im Channel #nsdb wird auch der LV-Leiter aktiv sein um offene Fragen zu beantworten oder Antworten von Studierenden zu bestätigen.
Bericht
Bitte beachten Sie folgende Richtlinien bei der Abfassung des Berichts.- Template: Verwenden Sie das LaTeX-Template, das mit jedem Checkpoint veröffentlicht wird.
- Spache: Das Template ist in Englisch verfasst. Es steht jeder Gruppen frei, den Bericht in Englisch (empfohlen) oder Deutsch zu bearbeiten. Die Wahl der Sprache hat keinen Einfluss auf die Bewertung.
Abgabe eines Berichtes
- Abgabe via Abgabesystem. Der Benutzername ist die Matrikelnummer. Das Passwort kann mithilfe der Password zurücksetzen Funktion (zurück-)gesetzt werden.
- Abzugeben ist zumindest der jeweilige Checkpoint-Bericht als PDF. Sie können auch Ihren Source-Code abgeben. In diesem Fall bitte alles (Bericht + Source-Code) in ein zip- oder tar.gz-Archiv packen.
- Verspätete Abgaben werden nicht berücksichtigt.
Präsentation
Am Ende des Semesters stellt jede Gruppe ihr Projekt in einer 15-minütigen Präsentation vor. Studierende, die der Präsentation fernbleiben, werden ohne Ausnahme mit 0 Punkten beurteilt.
Minimaler Inhalt einer Präsentation
- Kurze Beschreibung des Anwendungsszenarios, des Setups und der verwendeten Datensätze
- Vorstellung des verwendeten Datenbank-/Processing-Systems (Daten-/Verarbeitungsmodell, systemspezifische Aspekte/Besonderheiten)
- Motivation für das System im Kontext des Anwendungsszenarios
- (Live-) Demo der Applikation
Bewertung
Pro Checkpoint gibt es eine vordefinierte Anzahl an Punkten, die sich aus regulären Punkten und Bonuspunkten zusammensetzt. Für die Gesamtbewertung werden die erreichten Punkte aller Checkpoints aufsummiert.
Bonuspunkte fließen erst in die Gesamtbewertung ein, sobald mehr als die Hälfte der regulären Gesamtpunkte erreicht wurden. D.h. wenn die Summe der regulären Punkte aller Checkpoints weniger als 12.5 Punkte beträgt, kann durch Bonuspunkte keine positive Gesamtbewertung erreicht werden! Sobald mindestens 12.5 reguläre Punkte erreicht wurden, werden die Bonuspunkte zu den Gesamtpunkten addiert.
Punkte | Note | |||
---|---|---|---|---|
≥ 21.875 | ||||
[18.75; 21.875) | ||||
[15.625; 18.75) | ||||
[12.5; 15.625) | ||||
< 12.5 |