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. Hörer anderer Fachrichtungen” Sommersemester 2006 · Jens Teubner ([email protected]) 1. Übungsblatt Ausgabe: 23. Mai 2006 · Besprechung: 29. Mai 2006 Hinweis zum Übungsbetrieb: Die Raumfrage zu den Übungen ist mittlerweile geklärt. Die Übungen finden ab sofort im Raum N1190 statt. Die nächste Übung ist am 29. Mai 2006. Aufgabe 1: Einstieg in SQL Eine Tabelle Vorlesungen beschreibt das Vorlesungsverzeichnis einer imaginären Universität: Vorlesungen VorlNr 5001 5041 5043 5049 4052 5052 5216 5259 5022 4630 Titel Grundzüge Ethik Erkenntnistheorie Mäeutik Logik Wissenschaftstheorie Bioethik Der Wiener Kreis Glaube und Wissen Die 3 Kritiken SWS gelesenVon 4 4 3 2 4 3 2 2 2 4 2137 2125 2126 2125 2125 2126 2126 2133 2134 2137 • VorlNr repräsentiert eine eindeutige Vorlesungsnummer. Sie ist in der Datenbank als Schlüssel (key, s. Vorlesungsfolie 70) definiert. • Die Spalten Titel und SWS beinhalten die Vorlesungstitel bzw. die Anzahl Semesterwochenstunden. • gelesenVon ist eine Referenz auf eine weitere Tabelle (Professoren), die für uns vorerst nicht weiter von Bedeutung ist. gelesenVon ist ein Fremdschlüssel (foreign key, s. Vorlesungsfolie 74) auf die Tabelle Professoren. Formulieren Sie, unter Annahme dieses Tabellenschemas, Anfragen in SQL: (a) Listen Sie alle Einträge in der Tabelle Vorlesungen. In welcher Sortierung erwarten Sie die Ausgabe des Ergebnisses? Wie könnten Sie die Sortierung beeinflussen, z. B. eine Sortierung nach der Semesterwochenstundenzahl? (b) Listen Sie die Titel aller Vorlesungen in der Datenbank auf. (c) Geben Sie die Semesterwochenstundenzahl (SWS) aus für die Vorlesung(en) mit dem Titel ‘Logik’. (d) Unsere imaginäre Universität rechnet Semesterwochenstunden direkt um in ECTS-Punkte, wobei 1 ECTS = 1.5 SWS. Geben Sie alle Vorlesungen mit den entsprechenden ECTS-Punktzahlen aus. (e) Geben Sie alle Vorlesungen aus mit mindestens 3 Semesterwochenstunden. (f) Geben Sie alle Vorlesungen aus mit mindestens 3, jedoch höchstens 4 SWS. Hinweis: Diese Teilaufgabe können Sie optional mit dem SQL-Prädikat BETWEEN implementieren. Informationen dazu finden Sie in jeder SQL-Dokumentation oder im Buch von Prof. Kemper. (g) Geben Sie alle Vorlesungen aus, deren Titel mit ‘. . . theorie’ endet. Hinweis: Dazu benötigen Sie das Prädikat LIKE, das in der Vorlesung vorgestellt wurde. Hinweis zur Bearbeitung: Auf den Webseiten des Lehrstuhls finden Sie eine internetbasierte Schnittstelle, um Ihre SQL-Ausdrücke auszuprobieren: http://www-db.in.tum.de/db2face/index.shtml Über diese Schnittstelle steht Ihnen auch die oben aufgelistete Tabelle Vorlesungen zur Verfügung. Aufgabe 2: Verständnisfragen (a) Welche Datentypen würden Sie für die Spalten der obigen Tabelle vorschlagen? Kandidaten könnten sein: VARCHAR(n), NUMERIC(n), DECIMAL(n,m), . . . . (b) Welche Eigenschaft muß eine Spalte besitzen, um als Schlüssel einer Tabelle in Frage zu kommen? (c) Beschreiben Sie den Unterschied zwischen logischen und physischen Zeigern. Welche Vorteile ergeben sich aus der ausschließlichen Verwendung logischer Zeiger? (d) Was charakterisiert eine deklarative Anfragesprache? Weshalb werden deklarative Sprachen für Datenbankanfragen bevorzugt?