c c c c c c c c c c c c c c c c c c c c INSTITUT FÜR INFORMATIK DER TECHNISCHEN UNIVERSITÄT MÜNCHEN LEHRSTUHL III · DATENBANKSYSTEME · PROF. DR. GRUST Übungen zur Vorlesung “Datenbanksysteme für Hörer anderer Fachrichtungen” Sommersemester 2007 Jens Teubner ([email protected]) · Manuel Mayr ([email protected]) 1. Übungsblatt Ausgabe: 7. Mai 2007 · Besprechung: 14. Mai 2007 Aufgabe 1: Beispieldatenbank aus der Vorlesung Auf der Kurswebseite1 finden Sie eine SQL-Datei, die die Tabellen DEPT und EMP (Vorlesungsfolien 70 und 79) anlegt. (a) Die Datei besteht aus CREATE TABLE- und INSERT INTO-Kommandos. Erklären Sie die einzelnen Teile dieser Anweisungen, insbesondere • Wo werden Tabellennamen, Spaltennamen, sowie Datentypen spezifiziert? Wie die Inhalte der einzelnen Zeilen? • Wofür steht das Schlüsselwort PRIMARY KEY? • Was bewirkt die Anweisung REFERENCES ...? • Was bedeuten die NOT NULL-Anweisungen? (b) Legen Sie beide Tabelle mit Hilfe der angegebenen Datei an. Installieren Sie dazu ein SQL-Datenbanksystem Ihrer Wahl auf Ihrem Rechner (z. B. IBM DB2, PostgreSQL, Oracle, MS SQL Server,. . . ). (c) Überzeugen Sie sich, dass beide Tabellen richtig angelegt wurden. Wie läßt sich mit Hilfe von SQL der gesamte Inhalt der Tabelle DEPT auslesen? (d) Die Reihenfolge der einzelnen Anweisungen ist nicht beliebig. Welches Problem erwarten Sie, wenn all INSERT INTO-Anweisungen in umgekehrter Reihenfolge ausgeführt werden? Tipp: Falls Sie den Effekt ausprobieren möchten: Mit den Kommandos DROP TABLE EMP; DROP TABLE DEPT; können Sie beide Tabellen entfernen und nochmals erneut anlegen. Beachten Sie, dass das DROP TABLE-Kommando Tabellen ohne Rückfrage und unwiederbringlich löscht! (e) Ausgehend vom Datenbankzustand wie auf Vorlesungsfolie 79 führt ein Benutzer folgendes Kommando aus: INSERT INTO EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO) VALUES (7782, ’JACK’, ’CLERK’, 7839, ’1978-07-19’, 2250, 20, NULL); 1 http://www-db.in.tum.de/cms/teaching/ss07/dbsysaf Welche Antwort erwarten Sie vom System? Welche Anweisung in der Tabellendefinition ist dafür verantwortlich? Aufgabe 2: Universitätsdatenbank Eine Universität möchte ein SQL-Datenbanksystem einsetzen, um Daten zum Lehrbetrieb zu verwalten. Dabei sollen insbesondere die folgenden Informationen gespeichert werden: 1. Zu Professoren werden Personalnummer, Namen, Fachgebiet und Gehaltsstufe gespeichert. 2. Für jeden Studenten verwaltet die Universität Matrikelnummer, Name, Fakultät, sowie das aktuelle Fachsemester. 3. Vorlesungen werden mit Titel und Semesterwochenstundenzahl abgelegt. 4. Außerdem wird in dem Datenbanksystem festgehalten, welche Studenten welche Vorlesungen besuchen. Zu jeder Vorlesung wird der Dozent (Professor) gespeichert, der die Veranstaltung hält. Wie könnten Sie das angegebene Szenario möglichst elegant mit Hilfe von Datenbanktabellen abbilden ( modellieren“)? Überlegen Sie sich dazu zunächst, welche Tabellen Sie wohl ” in jedem Fall benötigen werden. Beziehungen zwischen Tabellen lassen sich im allgemeinen mit Hilfe von (Fremd-)Schlüsseln darstellen. Wie könnte man damit Punkt 4 abbilden? Versuchen Sie, die entsprechenden Tabellen mit Hilfe von SQL-Anweisungen auf Ihrem System anzulegen. Hinweise: • Für dieses Aufgabenblatt sollte es eigentlich ausreichend sein, wenn Sie SQL-Anweisungen einfach von der oben erwähnten Datei und dem Vorlesungsskript abkupfern“; Details ” zur Sprache SQL werden wir im Laufe des Semesters aufsammeln“. ” Alternativ gibt es einen großen Fundus an Sekundärliteratur zum Erlernen von SQL, insbesondere – die Bibliothek. Praktisch jedes Grundlagenbuch zum Thema Datenbanken eignet sich dazu. Finden Sie Ihren persönlichen Favoriten. – Eine Internetsuche fördert schnell eine Vielzahl an SQL-Einführungen im Netz zutage. • Mit SQL experimentieren Sie am einfachsten auf Ihrem heimischen System (mit einem der angegebenen SQL-Systeme). Alternativ können Sie auch die SQL-Schnittstelle des Lehrstuhls für Datenbanksysteme im Internet ausprobieren: http://www-db.in.tum.de/db2face/index.shtml