Institut für Informatik Universität Osnabrück, 1.04.015 Prof. Dr. Oliver Vornberger http://www-lehre.inf.uos.de/~dbs Nils Haldenwang, M.Sc. Testat bis 9.04.015, 14:00 Uhr Übungen zu Datenbanksysteme Sommersemester 015 Blatt : Datenmodelle und Speicherstrukturen Aufgabe.1: ER-Diagramm und Relationales Datenmodell (0 Punkte) Zeichnen Sie zu dem unten genannten Sachverhalt ein ER-Diagramm und notieren Sie die zugehörige Ausprägung als relationales Datenmodell (Schema und Ausprägung). Das Datenmodell soll für die Implementierung einer Musikdatenbank für Nutzer verwendet werden. Hierzu sei folgender Ausschnitt betrachtet: Der Interpret hat das Album und das Album veröffentlicht. Zu ersterem gehören die Titel und, zu letzterem der Titel Smooth Criminal. Der Nutzer besitzt in seiner Sammlung die Titel und während der Benutzer Sorglos nur den Titel besitzt. Da jeder Entity-Typ nur über das Attribut verfügt, wurde auf die Notation verzichtet. Interpret: Album:
Titel: Smooth Criminal Nutzer: Sorglos Relationships: veroeffentlicht: Interpret enthaelt: Album besitzt: Nutzer Sorglos Album Titel Smooth Criminal Titel Aufgabe.: Hash-File (0 Punkte) Für die Musikdatenbank aus den vorherigen Aufgaben soll eine physikalische Datenstruktur auf Basis eines Hash-Files angelegt werden. Betrachten Sie in diesem Beispiel die folgenden Alben verschiedener Künstler und ihr Erscheinungsjahr: Abbey Road (1969), Dark Side of the Moon (197), Exile on Main St. (197), Talking Book (197), Kind of Blue (1959), Modern Sounds in Country and Western Music (196), Time Out (1959), Highway 61 Revisited (1965) Die zu nutzende Hashfunktion h bilde das Erscheinungsjahr auf das Intervall [0,] mit h( j) = j % 4 ab. Fügen Sie die angegebenen n der Alben nacheinander mit Hilfe von h in ein hash-organisiertes File ein. Zeichnen Sie den Aufbau ihres Files inklusive des Bucket-Directories. Nutzen Sie die folgende Blockstruktur: Löschen Sie nun Kind of Blue und fügen Sie War (198) und (1987) ein. Zeichnen Sie das veränderte File erneut. Hashwerte:
h(jahr) h(jahr) Abbey Road 1 Time Out Dark Side of the Moon 1 Highway 61 Revisited 1 Exile on Main St. 0 Talking Book 0 Kind of Blue Modern Sounds in Country and Western Music War 0 1 1 1 Exile on Main St. Talking Book 1 1 Abbey Road Dark Side of the Moon 1 0 Highway 61 Revisited 1 0 Modern Sounds in Country... 1 1 Kind of Blue Time Out
0 1 1 1 Exile on Main St. Talking Book 1 1 Abbey Road Dark Side of the Moon 1 0 Highway 61 Revisited 1 0 Modern Sounds in Country... 1 1 War Time Out 1 0 Aufgabe.: ISAM-File (40 Punkte) Fügen Sie nacheinander die folgenden folgenden Records in ein index-organisiertes File ein. Zu einem Record gehört jeweils der einer Person und dessen Geburtsdatum. Das Geburtsdatum soll dabei der Schlüssel eines Records sein. Zeichnen Sie den Aufbau Ihres Files nachdem alle Einfüge-Operationen beendet sind. Legen Sie eine Index-Datei zugrunde, die in jedem Block 4 Schlüssel-/Adresspaare speichern kann und eine Hauptdatei, die Records pro Block aufnimmt und im Header analog zum Beispiel im Skript vermerkt, ob die darin liegenden Records belegt oder frei sind. Theodor Heuss (1.01.1884), Gustav Heinemann (.07.1899), Walter Scheel (08.07.1919), Karl Carstens (14.1.1914), Heinrich Lübke (14..1894), Johannes Rau (16.01.191), Horst Köhler (.0.194) Löschen Sie nun Johannes Rau und fügen Sie Christian Wulff (19.06.1959) ein. Löschen Sie außerdem Karl Carstens und fügen Sie Richard von Weizsäcker (15.04.190) und Roman Herzog (05.04.194) ein. Ändern Sie schließlich den n von Gustav Heinemann in Gustav Walter Heinemann. Zeichnen Sie ihr File erneut. Aus Platzgründen sind jeweils nur die Nachnamen notiert. Die Änderung von Gustav Heinemann in Gustav Walter Heinemann kann als einfache Überschreibung durchgeführt werden da der Schlüssel nicht betroffen ist. Aufgabe.4: Fragen zur Veranstaltung (0 Punkte) Beantworten Sie Ihrer Tutorin/Ihrem Tutor Fragen zur Veranstaltung. 4
1.01.1884.07.1899 14.1.1914 16.01.191 Heuss 1.01.1884 Lübke 14..1894 Heinemann.07.1899 Castens 14.1.1914 Scheel 08.07.1919 Rau 16.01.191 Köhler.0.194 1.01.1884.07.1899 08.07.1919 05.04.194 Heuss 1.01.1884 Lübke 14..1894 Heinemann.07.1899 Scheel 08.07.1919 von Weizsäcker 15.04.190 Herzog 05.04.194 Köhler.0.194 Wulff 19.06.1959 00.0.194 5