cs241: Datenbanken mit Übungen HS 2011



Ähnliche Dokumente
mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum:

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

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

Erstellen von x-y-diagrammen in OpenOffice.calc

5. Übung: PHP-Grundlagen

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Professionelle Seminare im Bereich MS-Office

Widerrufsbelehrung der Free-Linked GmbH. Stand: Juni 2014

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: )

Erstellen einer digitalen Signatur für Adobe-Formulare

Anleitung über den Umgang mit Schildern

Primzahlen und RSA-Verschlüsselung

TYPO3 Tipps und Tricks

Lehrer: Einschreibemethoden

Datenbanksysteme 2 Frühjahr-/Sommersemester Mai 2014

Kulturelle Evolution 12

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Programmierkurs Java

Installation OMNIKEY 3121 USB

Access [basics] Rechnen in Berichten. Beispieldatenbank. Datensatzweise berechnen. Berechnung im Textfeld. Reporting in Berichten Rechnen in Berichten

Übung 7 DBMS-FUNKTIONALITÄTEN UND DATENIMPORT

Strom in unserem Alltag

Vorlesung Dokumentation und Datenbanken Klausur

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

FAMILIENSTAND ALLEINERZIEHENDE MÜTTER

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

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

SMS/ MMS Multimedia Center

Kreativ visualisieren

SQL - Übungen Bearbeitung der Datenbank Personal (1)

Mit dem Tool Stundenverwaltung von Hanno Kniebel erhalten Sie die Möglichkeit zur effizienten Verwaltung von Montagezeiten Ihrer Mitarbeiter.

Hochschule Karlsruhe Klausur EAI Prof. Dr. Christian Pape. Klausur EAI WS 05/06. Note: Bearbeitungszeit 90 Minuten Keine Hilfsmittel

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Password Depot für ios

1 Schritt für Schritt zu einem neuen Beitrag

Veröffentlichen von Apps, Arbeitsblättern und Storys. Qlik Sense Copyright QlikTech International AB. Alle Rechte vorbehalten.

Meine Entscheidung zur Wiederaufnahme der Arbeit

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

BEDIENUNGSANLEITUNG FÜR LIEFERANTEN AUSSCHREIBUNG

Zusammenführen mehrerer Dokumente zu einem PDF In drei Abschnitten erstellen Sie ein Dokument aus mehreren Einzeldokumenten:

Suchmaschinen. Universität Augsburg, Institut für Informatik SS 2014 Prof. Dr. W. Kießling 23. Mai 2014 Dr. M. Endres, F. Wenzel Lösungsblatt 6

Modul Datenbanksysteme 2 Prüfung skizzenhaft SS Aug Name: Note:

Gruppenrichtlinien und Softwareverteilung

2015 conject all rights reserved

BEDIENUNGSANLEITUNG: EINREICH-TOOL

Abfrage-Befehle in MySQL -diverse Funktionen -

Aufgaben zu XPath und XQuery

MARCANT - File Delivery System

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten

IT-SICHERHEIT IM UNTERNEHMEN Mehr Sicherheit für Ihre Entscheidung

Bedienungsanleitung Anlassteilnehmer (Vereinslisten)

Antolin-Titel jetzt automatisch in WinBIAP kennzeichnen

Info-Veranstaltung zur Erstellung von Zertifikaten

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

CTI SYSTEMS S.A. CTI SYSTEMS S.A. 12, op der Sang. Fax: +352/ L Lentzweiler. G.D.

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Glaube an die Existenz von Regeln für Vergleiche und Kenntnis der Regeln

Bedienungsanleitung: Onlineverifizierung von qualifiziert signierten PDF-Dateien

1 Vom Problem zum Programm

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

Webalizer HOWTO. Stand:

Zwischenablage (Bilder, Texte,...)

Aufgabe 5 Excel 2013 (Fortgeschrittene)

HTML5. Wie funktioniert HTML5? Tags: Attribute:

Datenaufbereitung in SPSS. Daten zusammenfügen

Programmiervorkurs SS 2011 Technische Universität Darmstadt Jan Hendrik Burdinski, Felix Kerger

Energetische Klassen von Gebäuden

SEMINAR Modifikation für die Nutzung des Community Builders

Was meinen die Leute eigentlich mit: Grexit?

Views in SQL. 2 Anlegen und Verwenden von Views 2

Informationsblatt Induktionsbeweis

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

4. BEZIEHUNGEN ZWISCHEN TABELLEN

e LEARNING Kurz-Anleitung zum Erstellen eines Wikis 1. Wiki erstellen

Objektorientierte Programmierung

Dokumentation. Black- und Whitelists. Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser

Anleitung für die Teilnahme an den Platzvergaben "Studio II, Studio IV und Studio VI" im Studiengang Bachelor Architektur SS15

Grundlagen der Theoretischen Informatik, SoSe 2008

Avenue Oldtimer Liebhaber- und Sammlerfahrzeuge. Ihre Leidenschaft, gut versichert

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

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

In dem unterem Feld können Sie Ihre eintragen, wenn sie im System hinterlegt wurde. Dann wird Ihnen Ihr Passwort noch einmal zugeschickt.

Sound-Formate. SelfLinux Autor: Johnny Graber Formatierung: Torsten Hemm Lizenz: GFDL

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

Online-Dateienablage und Datenaustauschdienst Box.net Stand: September 2011

Ein Bild in den Text einfügen

teamsync Kurzanleitung

Was ist das Budget für Arbeit?

Abwesenheitsnotiz im Exchange Server 2010

TESTEN SIE IHR KÖNNEN UND GEWINNEN SIE!

WinVetpro im Betriebsmodus Laptop

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Kurzanleitung fu r Clubbeauftragte zur Pflege der Mitgliederdaten im Mitgliederbereich

Produktionsplanung und steuerung (SS 2011)

Prozentrechnung. Wir können nun eine Formel für die Berechnung des Prozentwertes aufstellen:

Kontakte knüpfen und pflegen, Themen gemeinsam Diskutieren, Termine bekannt geben, oder die. ideal dazu, also sollten wir es auch nutzen!

Wie ist das Wissen von Jugendlichen über Verhütungsmethoden?

Transkript:

UNIVERSITÄT BASEL Prof. Dr. Heiko Schuldt MSc. Nenad Stojnić BSc. Ivan Giangreco BSc. Florian Lindörfer cs241: Datenbanken mit Übungen HS 2011 Übung 5 Abgabe bis: 4.11.2011 Hinweise: Modalitäten der Abgabe: Bitte laden Sie Ihre Lösungen VOR dem Mittwochtermin der Übung auf das courses-system. Verspätet abgegebene Lösungsblätter können nicht berücksichtigt werden. Modalitäten der Bearbeitung: Kleingruppen von bis zu zwei Personen sind möglich. Geben Sie auf der Lösung die Namen der Gruppenmitglieder an. schemauebungsdb.sql und valuesuebungsdb.sql enthalten die Skripte, mit deren Hilfe Sie Ihre Lösungen zu den Aufgaben 1 und 2 testen können. flug.sql und functions.sql enthalten die Skripte, mit deren Hilfe Sie Ihre Lösung zu der Aufgabe 3 testen können. Die Relationen in den Scripten enthalten aus Kompatibilitätsgründen keine Umlaute - auch die Datensätze enthalten keine Umlaute. Zudem wurde der Bindestrich im Attributnamen Reihenfolgen-Nummer weggelassen, denn viele Datenbanken unterstützen den Bindestrich für String-Attribute nicht. Laden Sie Ihre in PL/SQL zu erstellenden Lösungen als SQL-Script in courses hoch - nicht als Script abgegebene Lösungen werden nicht berücksichtigt. Die Lösungen (PL/SQL und Java) müssen lauffähig sein. Die Lösungen müssen diesmal nicht nur in courses hochgeladen werden, sondern die Gruppen, d.h., alle Mitglieder einer Gruppe, müssen ihre Lösungen vorstellen (entweder in der Übungsstunde oder individuell ausserhalb der Übungszeit). Es wird empfohlen Oracle als DBMS zu nutzen. 1

Aufgabe 1: Views (12 Punkte) Gegeben ist der folgende Ausschnitt aus dem Relationenschema unserer Übungsdatenbank mit jeweils einem Beispieltupel. (Beachten Sie, dass die AufgID der enthält-relation lediglich auf Hauptaufgaben (also nicht auf Teilaufgaben) verweist.) Uebungsblatt enthaelt Aufgabe Autor besteht aus (UeID, Nr, Semester, Vorlesung) 45, 1, HS08, Datenbanken (AufgID, UeID, ReihenfolgenNummer) 33, 45, 1 (AufgID, Punkte, Schwierigkeitsgrad, Text, AutorID) 33, 20, 2, Sie sind Tutor(in)..., 1 (AutorID, Name, Vorname, Titel) 4, Norris, Chuck, Dipl.-Inf. (HauptAufgID, TeilAufgID, ReihenfolgenNummer) 33, 34, 1 Zusätzlich sind gegeben die folgenden View Definitionen die sich auf das Relationenschema beziehen: CREATE OR REPLACE VIEW Vorl_db_1 as SELECT a1.aufgid, a1.punkte FROM uebungsblatt u, enthaelt e, aufgabe a1 AND e.aufgid = a1.aufgid AND u.semester = WS06 AND u.vorlesung = Datenbanken AND NOT EXISTS ( SELECT a.punkte FROM uebungsblatt u, enthaelt e, aufgabe a AND e.aufgid = a.aufgid AND u.semester = WS06 AND u.vorlesung = Datenbanken AND a.punkte < a1.punkte ) 2

CREATE OR REPLACE VIEW Vorl_db_2 as SELECT a1.aufgid, a1.punkte FROM uebungsblatt u1, enthaelt e, aufgabe a1 WHERE u1.ueid = e.ueid AND e.aufgid = a1.aufgid AND u1.semester = WS06 AND u1.vorlesung = Datenbanken AND a1.punkte <= ALL ( SELECT a.punkte FROM uebungsblatt u, enthaelt e, aufgabe a AND e.aufgid = a.aufgid AND u.ueid = u1.ueid ) WITH CHECK OPTION; a) Beschreiben Sie mit wenigen Worten verbal, was die beiden Views machen, d.h. welches Ziel ein Ersteller dieser Views hat. b) Erstellen Sie eine View mit Hilfe des Schlüsselwortes having, die dasselbe macht wie die View Vorl db 2. (2 Punkte) c) Formulieren Sie eine Anfrage, die aufbauend auf View Vorl db 2, dieselben Tupel selektiert wie View Vorl db 2, jedoch die komplette Attributliste der Relation Aufgabe ausgibt (dabei sollen keine Attribute mehrfach ausgegeben werden). d) Sie stellen fest, dass Sie beim Einfügen der Aufgabe mit der AufId=6, nur 5 statt 6 Punkte vergeben haben. Können Sie diese Änderung mit Hilfe der Views durchführen? Begründen Sie Ihre Antwort und geben Sie gegebenenfalls eine Alternative an, um die Änderung doch durchzuführen. e) Erstellen Sie eine View, die alle Übungen der Vorlesung Programmieren II ausgibt, unabhängig vom Semester, in welchem sie verwendet wurden. Dabei soll die View Änderungen erlauben, wie z.b. das ändern von WS06 in WS08. Testen Sie Ihre View mit je einem insert und einem update-statement. Geben Sie auch diese Statements im Sql-Script an. 3

(2 Punkte) f) Was müssen Sie tun, um zu vermeiden, dass über Ihre View Tupel mit dem Attributwert Vorlesung= Programmieren II in Vorlesung= Datenbanken geändert werden? Begründen Sie Ihre Antwort. Testen Sie Ihre View wiederum mit je einem Insert- und einem Update-Statement und geben Sie diese im SQL-Script an. (2 Punkte) g) Formulieren Sie eine Updateable View, die alle neuen Autoren ausgibt. (Neue Autoren sind solche, die noch keine Aufgaben erstellt haben.) Testen Sie Ihre View mit je einem insert und einem update-befehl. Geben Sie auch diese im Sql-Script an. (3 Punkte) Aufgabe 2: Stored Procedures (4 Punkte) Gegeben ist wieder das Relationenschema unserer Übungsdatenbank aus der ersten Aufgabe. Fügen Sie der Tabelle Autor eine Spalte stufe hinzu, wobei in dieser Spalte nur Anfaenger, Fortgeschrittener oder Profi stehen dürfen. Der default-wert soll Anfaenger sein. Erstellen Sie in PL/SQL eine Stored Procedure profil_level. Die Prozedur soll für die gesamte Tabelle Autor die stufe Anfaenger durch Fortgeschrittener ersetzen, wenn er zwei bis drei Aufgaben erstellt hat und Profi, wenn er mindestens vier Aufgaben erstellt hat. Verwenden Sie bei der Definition der Variablen wo immer möglich anchored types. Aufgabe 3: Stored Function - Flughafenanwendung (4 Punkte) In dieser Aufgabe soll mit einer Flugdatenbank gearbeitet werden. Die benötigten Dateien zum Erstellen der Datenbank finden Sie auf der Seite mit den Übungsmaterialien. Ziel der Aufgabe ist es, alle verfügbaren Flugverbindungen ab einem anzugebenden Flughafen zu finden, die maximal eine bestimmte Anzahl Teilstrecken enthalten, während der gesamten Reise immer die gleiche Fluglinie benutzen und sich immer weiter vom Ausgangsort entfernen. Erzeugen Sie zunächst die benätigten Tabellen und Daten, indem Sie das Skript flug.sql ausführen. Im Skript functions.sql finden Sie zudem einige vordefinierte Funktionen in PL/SQL, die Sie für die Lösung der Aufgabe benötigen. Implementieren Sie die PL/SQL-Funktion DIST ICAO, die die Distanz in nautischen Meilen zwischen zwei Flughäfen berechnet. Die Funktion soll folgende Signatur haben: FUNCTION DIST_ICAO(ap1 IN VARCHAR, ap2 IN VARCHAR) RETURN REAL Nutzen Sie dabei die schon verfügbaren Funktionen zur Berechnung der Distanz. 4

Achtung: In einigem Fällen erzeugt die Funktion DISTANCE unerklärliche Fehler, wenn beide Eingabepunkte identisch sind. Fangen Sie diesen Fall (ap1 == ap2) daher in der Funktion DIST ICAO ab und geben Sie direkt den Wert 0 zur uck. Hinweis: Bei der Arbeit mit Oracle und ExecuteQuery sind Funktionen als Single Statement auszuführen. In Oracle gibt es eine Spezial- Tabelle namens DUAL, mit der Sie SELECT-Anfragen ohne echte Tabelle als Ziel ausführen können. Diese eignet sich gut zum Testen Ihrer Funktion: SQL> select dist_icao( LFSB, KORD ) from dual; DIST_ICAO( LFSB, KORD ) ------------------------ 3809.35812 Die Ergebnisse dieser Teilaufgabe werden im Folgenden noch benötigt. Sollten Sie diese Teilaufgabe wider Erwarten nicht lösen können, so können Sie alternativ auf die Funktion mittels des public synonyms DIST ICAO GEG zugreifen. 5