Einführung in Datenbanksysteme, Datenbanken für die Bioinformatik Sommersemester Übungszettel (Abgabe Fr

Ähnliche Dokumente
Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum:

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

SQL: statische Integrität

Openstreetmap 2 Visum

Views in SQL. 2 Anlegen und Verwenden von Views 2

Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung

Maple Ein WMS zur Visualisierung von Tagclouds generiert aus OpenStreetMap Daten

Strukturierte Objekttypen

5. SQL: Erstellen von Tabellen. Erzeugen und Löschen von Tabellen. Umgang mit Bedingungen (Constraints) Einfügen und Löschen von Daten

5. Übungsblatt (Testatwoche: Mai 2010)

Einführung in die Informatik II

Kapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023

Inhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung

Hochschule Karlsruhe Technik und Wirtschaft Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt.

Das SQL-Schlüsselwort ALL entspricht dem Allquantor der Prädikatenlogik

Universität Augsburg, Institut für Informatik Wintersemester 2011/2012 Prof. Dr. W. Kießling 03. Feb Semesterklausur

Dipl. Inf. Eric Winter. PostgreSQLals HugeData Storage Ein Erfahrungsbericht

Tuning von PostGIS mit Read- Only-Daten von OpenStreetMap

PostgreSQL unter Debian Linux

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski.

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - SS XMLType. Christian Senger/Andreas Schmidt XMLType 1/32

Oracle Datenbankprogrammierung mit PL/SQL Grundlagen

Datenbanksysteme I. Klausur zum Praktikum. Mehrere Professoren prüfen mit genau einem Beisitzer genau einen Studenten.

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

Bedingungen über Werte Statische Integrität. CHECK-Klausel

XML in der Oracle Datenbank "relational and beyond"

Objektrelationale Datenbanken

5.3 Datenänderung/-zugriff mit SQL (DML)

Speicherung von XML in (objekt-)relationalen Datenbanken. Burkhard Schäfer

Objektrelationale und erweiterbare Datenbanksysteme

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #5. SQL (Teil 3)

3.17 Zugriffskontrolle

6. Sichten, Integrität und Zugriffskontrolle. Vorlesung "Informa=onssysteme" Sommersemester 2015

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5

Integritätsbedingungen / Normalformen- Beispiel: Kontoführung

Klausur Datenbanken Wintersemester 2004/2005 Prof. Dr. Wolfgang May 10. Februar 2004, Uhr Bearbeitungszeit: 90 Minuten

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

Software-Engineering Einführung

Einführung in die Software-Umgebung

Datenbanken 1 Sommersemester 2014/

Datenbanken. Ein DBS besteht aus zwei Teilen:

DB2 SQL, der Systemkatalog & Aktive Datenbanken

cs241: Datenbanken mit Übungen HS 2011

Dokumentation QuickHMI-Schnittstelle für Oracle Datenbanken

Oracle SQL Tutorium - Wiederholung DB I -

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - SS Metadaten

Relationale Datenbanken

3. Übungsblatt (Testatwoche: Mai 2010) Einführung in Datenbanksysteme Datenbanken für die Bioinformatik

Datenbanken. Sommersemester 2010 Probeklausur

SQL structured query language

SQL (Structured Query Language) Schemata Datentypen

Datumsangaben, enthält mindestens Jahr, Monat, Tag

Neugestaltung der Datenbank des Chemnitzer Studentennetzes

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2

1 hat * Transformation des vorigen Entity-Relationship-Diagramms in ein Datenbankschema

Datenbanken und Informationssysteme Sommersemester 2012 Probeklausur

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

Relationales Datenmodell

Relationale Datenbanken in der Praxis

Business Intelligence Praktikum 1

Dynamische Generierung von XML

1. Funktionen und Datenflüsse; Tabellenkalkulationssysteme

4. Übungszettel (Musterlösung)

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten

Einteilung von Datenbanken

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

Powerful PL/SQL: Collections indizieren mit VARCHAR2- Indizes ein Praxisbeispiel

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und combit GmbH Untere Laube Konstanz

SQL-DDL und SQL-Anfragen. CREATE TABLE Kategorie (Bezeichnung VARCHAR(15) NOT NULL PRIMARY KEY, Klassifikationskriterium VARCHAR(100) NOT NULL )

PostgreSQL im praktischen Einsatz. Stefan Schumacher

1 Übungen zu Datenbank-Kategorien

Kapitel 3 Datenintegrität

Cassandra Query Language (CQL)

Whitepaper. Produkt: combit Relationship Manager / address manager. Integration der Ansicht "Adressen" in eigene Solution

DOAG Demo Kino: Advisors, Monitoring Werkzeuge in der Datenbank Ulrike Schwinn Business Unit Database Oracle Deutschland B.V.

6SHLFKHUXQJYRQ5')LQ'DWHQEDQNHQ

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

Wanderwege weltweit Entwicklung einer Overlay-Karte aus OSM-Daten

NoSQL mit Postgres 15. Juni 2015

Benutzerverwaltung, Sichten und Datenintegrität

Informations- und Wissensmanagement

Entwicklungsumgebung für die Laborübung

Themen des Kapitels. 2 Grundlagen von PL/SQL. PL/SQL Blöcke Kommentare Bezeichner Variablen Operatoren. 2.1 Übersicht. Grundelemente von PL/SQL.

Uni Duisburg-Essen Fachgebiet Informationssysteme Prof. Dr. N. Fuhr

Labor 3 - Datenbank mit MySQL

Konstante Relationen

Vorlesung Datenbankmanagementsysteme

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.

4 Grundlagen der Datenbankentwicklung

Funktion definieren Gibt Summe der Gehälter zurück. Aufruf in einem SQL-Statement

Datenmodellierung und Datenbanksysteme. Vorlesung. Informationswissenschaft und Informationssysteme. Hans Uszkoreit & Brigi1e Jörg

Übung Datenbanken in der Praxis. Datenmodifikation mit SQL

MIN oder MAX Bildung per B*Tree Index Hint

Einführung relationale Datenbanken. Themenblock: Erstellung eines Cube. Schlüssel. Relationenmodell Relationenname Attribut. Problem.

Themenblock: Erstellung eines Cube

7. Übung - Datenbanken

SQL-Injection. Seite 1 / 16

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

Transkript:

5. Übungszettel (Abgabe Fr. 22.05.09 bis 18 Uhr) Einführung in Datenbanksysteme Datenbanken für die Bioinformatik Heinz Schweppe, Jürgen Broß, Katharina Hahn Übungsaufgaben Aufgabe 1 (Advanced SQL) 12 Punkte Gegeben sei der unten abgebildete Ausschnitt aus dem Datenbankschema des OpenStreetMap Projektes (www.openstreetmap.org), bestehend aus den Tabellen nodes, way_nodes und way_tags. Die Datenbank enthält geographische Objekte, wie etwa Straßenabschnitte, S Bahnlinien, Bushaltestellen und viele mehr. Für diese Aufgabe sind die Straßenabschnitte und deren Eigenschaften von Relevanz. Ein Straßenabschnitt ist wie folgt modelliert: Jeder Straßenabschnitt besitzt eine eindeutige ID. Ein Straßenabschnitt besteht aus mehreren Wegpunkten. Diese Wegpunkte sind in der Tabelle way_nodes verzeichnet. Wegpunkte sind eindeutig identifiziert über die ID des Straßenabschnitts und einer sequence_id. Die Zählung der sequence_id beginnt bei 1 und ordnet die Wegpunkte eines Straßenabschnitts. Eigenschaften eines Straßenabschnitts sind in der Tabelle way_tags verzeichnet. Die Tabelle enthält key/value Paare (z.b. key: maxspeed, value:70). Ein solches Paar wird über die ID einem Straßenabschnitt zugeordnet. Beachten Sie, dass in diesem Ausschnitt keine Entität Straßenabschnitt existiert und diese nur implizit über die IDs in way_nodes und way_tags vorhanden ist. Beachten Sie auch, dass die Tabelle way_nodes nicht nur Straßenabschnitte enthält, sondern z.b. auch S Bahnlinien. Straßenabschnitte sind in der Tabelle way_tags mit dem Schlüssel (Attribut k) highway und einem Wert ( Attribut v ) aus ( motorway, primary, secondary, tertiary, residential oder playing street ) getaggt. Die Tabelle nodes enthält alle bekannten geographischen Punkte. Dort sind evtl. zu einem Punkt zusätzliche Tags wie z.b. Ampeln oder Stoppschilder eingetragen. Ein way_node referenziert immer genau einen node. Die Tabelle nodes enthält auch geographische Punkte, die nicht von einem way_node referenziert werden. Untersuchen Sie die Datensätze, um mit der Datenbank vetraut zu werden!

Die OSM Datenbank ist sowohl unter Oracle, als auch unter PostgreSQL im Schema osm verfügbar. Die Daten in der Datenbank umfassen die Region Berlin. a) Sie wollen einen Graphen des Straßennetzes erzeugen. Knoten dieses Graphen sind alle Straßenkreuzungen. Schreiben Sie eine SQL Anweisung, die alle Straßenkreuzungen (Ids der Punkte aus nodes) liefert. Ein solcher Kreuzungspunkt wird von mind. 2 Straßenabschnitten referenziert. b) Schreiben Sie eine SQL Anweisung, die alle Straßenabschnitte (Id und Name) findet, auf denen eine Geschwindigkeitsbegrenzung von 30km/h (tag: maxspeed, wert: 30) vorliegt und mindestens eine Ampel existiert. (Ampel nodes.tags : highway=traffic_signals) c) Schreiben Sie eine SQL Anweisung, die berechnet wieviele Ampeln durchschnittlich auf Straßenabschnitten, die sich in der Datenbank aus mehr als 20 Wegstücken zusammensetzen, existieren. (Ampel nodes.tags : highway=traffic_signals) Abbildung 1: Datenbankschema des Ausschnittes aus der OSM Datenbank

Abbildung 2: Beispiel für die Modellierung von Straßenabschnitten Aufgabe 2 (Advanced SQL) 4 Punkte Gegeben sei die folgende geschachtelte Anfrage: SELECT * FROM R WHERE R.a <operator> (SELECT b FROM S WHERE S.c = 1); Welche der folgenden Formulierungen sind äquivalent, welche nicht? Begründen Sie Ihre Aussagen kurz. a) IN b) = ANY c) = ALL d) NOT IN e) <> ANY f) <> ALL

Aufgabe 3 (Views) 6 Punkte Erstellen Sie auf Basis des in Aufgabe 1 angegebenen Schemas für die OSM Datenbank folgende Sichten (Views): a) Eine Sicht, die nur Straßen vom Typ 'residential' enthält. Die Sicht enthält die ID eines Straßenabschnittes. b) Eine Sicht, die nur Straßenabschnitte vom Typ 'residential' enthält und die einen Straßennamen besitzen (way_tags: k=name). Die Sicht soll zu einem Straßenabschnitt die ID, die Koordinaten (latitude, longitude) des Beginns des Abschnitts, sowie den Straßenamen enthalten. Aufgabe 4 (SQL Funktionen & Trigger) 15 (+5) Punkte Wie Sie alle den Meldungen entnehmen konnten, gab es ein gehöriges Chaos bei der elektronischen Datenverarbeitung der Anträge zur Umweltprämie ( Abwrackprämie ). Auf dunklen Kanälen ist es den Übungsleitern gelungen an das Datenbankschema der für diese Zwecke entwickelten Software zu gelangen. Es ist untenstehend abgebildet. Die Abwrack Datenbank ist sowohl für Oracle, als auch für PostgreSQL als SQL Skript auf der Übungsseite verfügbar. Schreiben Sie folgende Funktionen in PL/SQL (Oracle) bzw. PG_PL/SQL (PostgreSQL): a) CO2BILANZ() NUMBER: Berechnet die Differenz des CO2 Ausstoßes zwischen neuer und alter Fahrzeugflotte. b) CO2BILANZ2(NUMBER konstante) NUMBER: Berechnet die Differenz des CO2 Ausstoßes zwischen neuer und alter Fahrzeugflotte, wenn für die frühzeitige Herstellung eines Neufahrzeugs (aufgrund der frühzeitigen Verschrottung) eine Konstante für den CO2 Ausstoß einberechnet wird. c) MARKTANTEIL(VARCHAR hersteller) NUMBER: Berechnet den Marktanteil eines Herstellers an den mit der Umweltprämie geförderten Neuwagen. d) Optionale Zusatzaufgabe mit 5 Zusatzpunkten KOSTEN(INTEGER steuer_vorteil_pauchale, FLOAT verbrauch_schwellwert) VARCHAR: Berechnet die kurzfristigen Kosten (ggf. auch den Gewinn) für den Staat, die durch Gewährung der Umweltprämie entstanden sind. Kosten sind bei jedem Antrag die gewährte Prämie. Steuergewinne ergeben sich aus der erhaltenen Mehrwertsteuer beim Verkauf eines Neuwagens. Wenn ein Neuwagen beim Verbrauch unter dem Schwellwert verbrauch_schwellwert liegt, müssen als Kosten noch pauschal KFZ Steuerausfälle von steuer_vorteil_pauschale berechnet werden.

Sollten Kosten entstanden sein, so gibt die Funktion aus: Uups, durch die Gewährung der Prämie sind Kosten von??? entstanden. Sonst gibt die Funktion aus: Hurra, es ist ein Gewinn von??? entstanden. e) Schreiben Sie einen Trigger, der folgende Aufgabe erfüllt: Wenn ein Sachbearbeiter einen Antrag bearbeitet ändert er aus Gründen der Nachvollziehbarkeit für den Bürger den Status des Antrags. Zum Beispiel von empfangen in in Bearbeitung und dann in gewährt oder abgelehnt. Ihr Trigger soll bei einer Änderung des Status eine Nachricht in die Nachrichten Tabelle für den zu informierenden Bürger einstellen. Je nach Status unterscheiden sich die Nachrichten. Beim Inhalt der Nachrichten haben Sie freie Wahl. Abbildung 3: Datenbankschema für die Abwrackdatenbank Informationen zur Programmierung von PL/SQL und PG_PL/SQL finden Sie in den entsprechenden Dokumentationen der beiden Datenbanksysteme.