Universität Augsburg, Institut für Informatik Datenbanken u. Informationssysteme Dr. M. Endres Übungsblatt 8 Datenbankprogrammierung (Oracle) Aufgabe 1: DECODE und CASE In der Vorlesung haben Sie die CASE-Anweisung kennen gelernt, um bedingte Spaltenwerte zu erzeugen. In Oracle steht hierfür auch die Funktion DECODE zur Verfügung (siehe Skript). Bearbeiten Sie nun folgende Aufgaben: a) Wie lässt sich DECODE durch CASE ausdrücken? b) Wie lässt sich DECODE durch UNION-Konstrukte ausdrücken? Schreiben Sie für beide Fälle geeignte SQL Anweisungen. Aufgabe 2: SQL (Oracle) Gegeben sei die folgende Relation: messwerte(datum, wert_1, wert_2, wert_3, wert_4, wert_5, wert_6) Die Spalten wert 1 bis wert 6 enthalten numerische Messwerte für den in datum angegebenen Tag. Bearbeiten Sie die folgenden Aufgaben: a) Erstellen Sie zunächst ihre eigene Relation messwerte und füllen Sie diese mit geeigneten Daten. datum ist Primärschlüssel. b) Geben Sie für jeden Tag den höchsten und den niedrigsten Messwert aus. c) Geben Sie für jeden Tag wert 1 aus und die Differenz von wert 1 und dem Vortageswert von wert 1. Aufgabe 3: Bäume Der folgende Baum soll mittels der Nest-Set-Darstellung in Oracle gespeichert werden. Fauna Wirbeltiere Säugetiere Echsen Schalentiere Fische a) Erzeugen Sie in SQL eine geeignete Relation mit den Feldern NODE NAME, LFT und RGT. b) Verwenden Sie den Depth-First Traversierungsalgorithmus um eine Nested-Sets-Darstellung des Baums zu bestimmen. Geben sie die vollständige Tupelmenge an. c) Ermitteln Sie mit SQL alle Vorgänger von “Echsen”. d) Ermitteln Sie mit SQL alle Nachfolger von “Wirbeltiere”. e) “Saurier” gehören zur Gattung der Wirbeltiere. Fügen Sie “Saurier” rechts von “Säugetiere” ein. f) Zu den Schalentieren gehören die Insekten. Erweiteren Sie Ihren Baum um einen Knoten “Insekten”. g) Aufgrund zu hoher Umweltverschmutzung sind alle Wirbeltiere ausgestorben. Löschen Sie den gesamten Teilbaum aus ihrer Struktur.