Aufgabenblatt 05 - Hochschule Osnabrück

Werbung
Prof. Dr. Stephan Kleuker
Hochschule Osnabrück
Fakultät Ing.-Wissenschaften und Informatik
- Software-Entwicklung -
Datenbanksysteme
Wintersemester 2012/13
5. Aufgabenblatt
Wichtig! Damit Sie an den folgenden Übungen überhaupt teilnehmen können, müssen Sie
die Daten von Mondial in Ihren Datenbankbereich einspielen, siehe Aufgabe 17. Bei allen
Abnahmen ab diesem Aufgabenblatt wird davon ausgegangen, dass Sie individuell diese an
Ihrer HS-Datenbank vorführen.
Lesen Sie das Dokument zur Nutzung des SQL-Developers von der Veranstaltungs-WebSeite durch.
Schreiben Sie Primär- und Fremdschlüssel immer als Constraints mit eigenem Namen.
Aufgabe 15 (4 Punkte)
Geben Sie folgende Tabellen Besteller, Anruf, Pizza, Bestellung, in Oracle ein (Hinweis:
Schreiben Sie ein einzulesendes SQL-Skript in eine Datei, verwenden Sie als Datentypen
nur NUMBER und VARCHAR, damit ist das Datum und die Zeit auch ein VARCHAR).
Am Anfang Ihres Skriptes sollten Sie die Tabellen löschen, so dass Sie leicht neu erzeugt
werden können. Teile der folgenden Aufgabenstellung können gelöst werden, in dem Sie
einzelne Skriptzeilen auskommentieren.
Bestellung
Besteller
TELEFON
-----------04321
03456
02345
NAME
---------Ronny
Bonny
Johnny
ORT
-------Itzehoe
Elmshorn
Horst
ANUMMER PNUMMER MENGE
-------- -------- ----1
1
2
1
2
3
2
2
4
3
1
1
4
1
2
4
2
3
Anruf
NUMMER
-----1
2
3
4
TELEFON
-------04321
03456
03456
04321
DATUM
---------01.11.2006
01.11.2006
01.11.2006
01.11.2006
UHRZEIT
----16:45
16:50
18:30
18:45
Pizza
NUMMER
------1
2
3
NAME
PREIS
-------- -------Mafiosa
6.5
Tofu
5.5
Western
8.3
a) Erstellen Sie die Tabellen zunächst ohne die Nutzung von PRIMARY und FOREIGN
KEYS, führen Sie folgende Schritte aus und notieren Sie die Ergebnisse.
i) Versuchen Sie Daten (also eine Zeile) doppelt in eine Tabelle einzutragen
ii) Versuchen Sie in Anruf einen Eintrag für eine nicht in Besteller eingetragene
Telefonnummer zu machen
iii) Versuchen Sie in Anruf einen Eintrag zu machen, dabei ist die
Telefonnummer unbekannt (NULL)
iv) Versuchen Sie eine Zeile der Tabelle Besteller zu löschen
v) Versuchen Sie eine Zeile der Tabelle Bestellung zu löschen
vi) Versuchen Sie die Telefonnummer eines Bestellers zu ändern
vii) Versuchen Sie den Namen einer Pizza zu ändern
viii) Versuchen Sie die Tabelle Besteller mit CASCADE ... zu löschen
ix) Versuchen Sie die Tabelle Pizza mit CASCADE ... zu löschen
Hinweise: Überprüfen Sie Ihr Ergebnis mit DESCR <Tabellenname>; und den
Inhalt von Tabellen mit SELECT * FROM <Tabellenname>;
b) Überlegen Sie, welche Abhängigkeiten in den Tabellen stehen. Führen Sie die
gleichen Schritte wie vorher mit der Nutzung von PRIMARY und FOREIGN KEYS aus
und notieren Sie die Ergebnisse.
Seite 1 von 2
Prof. Dr. Stephan Kleuker
Hochschule Osnabrück
Fakultät Ing.-Wissenschaften und Informatik
- Software-Entwicklung -
Datenbanksysteme
Wintersemester 2012/13
5. Aufgabenblatt
Aufgabe 16 (3 Punkte)
a) Schreiben Sie die SQL-Statements, um folgende Tabellen in eine SQL-Datenbank
einzufügen. Als weitere Randbedingungen sollen beachtet werden:
- Keine Einträge dürfen leer sein.
- Die Matrikelnummern der ING-Studis liegen zwischen 1000 und 2000, der BWLStudis zwischen 2000 und 3000 und die der INF-Studis zwischen 3000 und 4000
- Wenn ein Student mit Nachnamen „Cash“ heißt, muss er BWL studieren
- Der Name des Fachs soll in der Bereichstabelle eindeutig sein
Studi
Bereich
Matrikel- Fach VorNachFach
Kürzel Leiter
nummer
name name
1001
2013
3014
ING
BWL
INF
Lisa
Willi
Bert
Lustig
Wichtig
Bartlos
Ingenieurwesen
Wirtschaftslehre
Informatik
ING
BWL
INF
Karl Knuffig
Gert Genau
Norbert Nett
b) Leiten Sie aus folgender Beschreibung ein ER-Diagramm ab, übersetzen Sie dies in
Tabellen, bringen Sie diese in 3NF und geben sie die Tabellen in die Datenbank ein.
„Jede Tabelle wird durch einen eindeutigen Tabellennamen identifiziert und beinhaltet
mehrere Spalten. Jede Spalte gehört zu genau einer Tabelle und hat (vereinfacht)
einen identifizierenden Spaltennamen und einen Typen. Zu jeder Tabelle gehört
maximal ein Primärschlüssel, der durch seinen Namen eindeutig ist. Jeder
Primärschlüssel gehört zu genau einer Tabelle und umfasst eine oder mehrere
Spalten, die jeweils nur zu maximal einem Primärschlüssel gehören können.
Füllen Sie die entstehenden Tabellen mit den zu diesen Tabellen gehörenden
Informationen, also tragen sie die Informationen über Tabellen, Spalten und
Primärschlüssel ein. Sie werden wahrscheinlich in eine Tabelle mit der Spalte
„Tabellenname“ eine Zeile „Tabelle“ eintragen. Eventuell müssen Sie Ihre
Spaltennamen leicht anpassen.
Aufgabe 17 (1 Punkt)
Kopieren Sie die SQL-Files (*.sql) zu Mondial von der Veranstaltungswebseite in ein lokales
Verzeichnis des Arbeitsrechners.
Laden Sie das Datenbankschema (mondial-schema.sql) mit den Tabellendefinitionen und
danach die Daten (mondial-inputs.sql) in Ihren Oracle-Account, d.h. in den Editor
(typischerweise auf der rechten Seite) und führen Sie das Skript aus.
Tippen Sie „SELECT * FROM Country;“ in das obere rechte Fenster und führen sie die
Anfrage aus, Sie sollten einige Datensätze angezeigt bekommen.
Hinweis: Bearbeiten Sie diese Aufgabe möglichst nicht gleichzeitig mit vielen anderen
Studierenden, also z. B. nicht im Praktikum.
Seite 2 von 2
Herunterladen