Datenbanken IIB: DBMS-Implementierung
Übung,
u.a. kleines DBMS-Projekt
Als Teil der Hausaufgaben soll
ein kleines Stück eines DBMS in C++ programmiert werden.
Z.B. Pufferverwaltung und eine Index-Struktur
(B+-Baum)
mit Tupeln als Einträgen
(dafür eventuell ein Mini-Data-Dictionary).
Der Index soll natürlich in einer Datei stehen
(auf Platte, nicht im Hauptspeicher).
Am Ende können wir einen Wettbewerb machen,
wer eine gewisse Anzahl Zugriffe am schnellsten schafft.
Es ist außerdem geplant,
dass die Teilnehmer Zugriff auf eine Oracle-Datenbank
mit DBA-Rechten bekommen.
Die Durchführung einiger typischer DBA-Aufgaben
sollte auch Teil der Übung sein.
Hausaufgabenblätter:
Die Abgabe der Hausaufgaben erfolgt per EMail an mich
(brass@informatik.uni-halle.de
),
mit [dbi17]
als Teil der Betreff-Zeile.
Abgabetermin ist jeweils der nächste Mittwoch
vor der Übung.
Sollte es noch technische Schwierigkeiten beim Einloggen
auf dem Rechner mit dem Oracle Server geben,
werde ich beim Abgabetermin großzügig sein.
Falls Sie in Gruppen zusammenarbeiten,
bitte nur eine EMail pro Gruppe!
- Hausaufgabe 1 (Termin: 18.10.2017, 12:00):
Zur Einarbeitung in C++ für das Datenbankprojekt
ist die erste Hausaufgabe einen einfachen Primzahltest
in C++ zu schreiben:
Lesen Sie eine natürliche Zahl von der Standard-Eingabe ein,
und geben Sie entweder "Primzahl" aus,
oder "Ist durch n teilbar"
mit einem Teiler n.
Das ist nur wenig mehr als das übliche "Hello, world" Beispiel.
Geben Sie die Hausaufgabe bis Dienstag, 17.10.2017, 24:00
per EMail an den Dozenten ab.
Die Betreff-Zeile muss "dbi17" enthalten.
Zweier-Gruppen sind erlaubt.
Beide Gruppenmitglieder müssen alles erklären können
(inklusive der Compiler-Benutzung).
[PDF]
[ps, verkleinert].
- Hausaufgabe 2 (Termin: 25.10.2017, 12:00):
Überblick über Oracle Dokumentation gewinnen,
einfache C++ Klasse programmieren:
[PDF]
[ps, verkleinert].
- Hausaufgabe 3 (Termin: 01.11.2017, 12:00):
Oracle Nutzer anlegen, Oracle Data Dictionary abfragen,
Datei in C++ einlesen:
[PDF]
[ps, verkleinert].
- Hausaufgabe 4 (Termin: 08.11.2017, 12:00):
Mehr SQL*Plus Befehle,
SQL widerholen,
Oracle Recycle Bin,
Verkette Liste in C++ programmieren:
[PDF]
[ps, verkleinert].
- Hausaufgabe 5 (Termin: 15.11.2017, 12:00):
Dateien von Oracle, Speicherplatz, SQL*Plus Skript:
[PDF]
[ps, verkleinert].
- Hausaufgabe 6 (Termin: 22.11.2017, 12:00):
Platten, Oracle Speicherarchitektur, Oracle Dokumentation:
[PDF]
[ps, verkleinert].
- Hausaufgabe 7 (Termin: 29.11.2017, 12:00):
Platten vs. SSD, RAID-Systeme:
[PDF]
[ps, verkleinert].
[fill_block.sql].
- Hausaufgabe 8 (Termin: 06.12.2017/13.12.2017,
12:00):
Buffer Cache:
[PDF]
[ps, verkleinert].
[refstring.txt].
[h8_buf].
- Hausaufgabe 9 (Termin: 13.12.2017/20.12.2017,
12:00):
Segments, Extents, Blocks:
[PDF]
[ps, verkleinert].
- Hausaufgabe 10 (Termin: 20.12.2017,
12:00):
Berechnung der Größe von Tabellen, Migrierte Zeilen:
[PDF]
[ps, verkleinert].
- Hausaufgabe 11 (Termin: 17.01.2018,
12:00):
B-Bäume:
[PDF]
[ps, verkleinert].
- Hausaufgabe 12 (Termin: 24./31.01.2018,
12:00):
Indexe, Implementierung der Klasse file_c
:
[PDF]
[ps, verkleinert].
- Hausaufgabe 13 (Termin: 31.01.2018/16.02.2018,
12:00):
Anfrage-Auswertungspläne,
Kostenschätzung/Data Dictionay Anfrage,
Implementierung der Klasse btree_c
:
[PDF]
[ps, verkleinert].
Weitere Unterlagen zur Übung:
- Einführung in C++ für Java-Programmierer (90 Folien)
[wird noch erweitert]:
[PDF]
Stefan Brass
(brass@informatik.uni-halle.de),
09. Oktober 2017
Original URL:
http://www.informatik.uni-halle.de/~brass/dbi17/projekt.html
[XHTML 1.0 Checked]
[CSS Checked]
[Links Geprüft]
[Impressum]