Vorlesung Datenbanken SS 2005 Prof. Dr. Schicker
Übung 1
Thema: Zugriff auf die Beispieldatenbank BIKE.
Übung: Arbeiten mit SQLPLUS, Arbeiten mit dem SELECT-Befehl.
Aufgaben:
Lösen Sie die folgenden Aufgaben mit Hilfe von SQL-Befehlen. Vergleichen Sie ihre Ergebnisse mit den Angaben zur BIKE-Datenbank.
1. Wie viele Relationen (Tabellen) enthält die Beispieldatenbank Bike, wie heißen sie (Systemtabelle TAB)?
2. Wie viele Attribute (Spalten) besitzt jede dieser Tabellen und wie heißen sie (Systemtab. USER_TABLES)?
3. Die Relation Auftrag spielt eine zentrale Rolle in der Beispieldatenbank. Versuchen Sie folgende Informationen unter Zuhilfenahme weiterer Relationen zu bekommen: Wie heißt der Kunde zum ersten Auftrag mit Namen? Wie heißt der Mitarbeiter, der diesen Auftrag betreut? Was hat der Kunde eigentlich alles gekauft?
4. Welcher Mitarbeiter verdient am meisten, welcher am wenigsten? Welche Positionen besetzen diese Per- sonen in der Firma?
5. Welche Mitarbeiter haben bisher etwas verkauft? Geben Sie die Namen dieser Mitarbeiter aus.
6. Welcher Mitarbeiter hat bisher den teuersten Artikel zu welchem Preis verkauft? Welche Position bekleidet dieser Mitarbeiter, wie viel verdient er, wie wird er beurteilt? (sehr schwer, wenn alle Fragen mit einem einzigen Select-Befehl beantwortet werden!)
7. Welche Mitarbeiter haben einen Vorgesetzten?
Wichtige Hinweise:
• Die Aufgaben 1 und 2 dienen vor allem dem Verständnis der Beispieldatenbank. Arbeiten Sie mit dem SELECT-Befehl und DESCRIBE (siehe Infoblatt). Wer alle Angaben aus beiden Aufgaben gleichzeitig bekommen möchte, sollte mit der Systemtabelle USER_TAB_COLUMNS experimentieren.
• Lesen Sie für die Aufgabe 3 die Inhalte der Relationen KUNDE, PERSONAL und AUFTRAGSPOSTEN.
• Bearbeiten Sie zunächst „zu Fuß“ die Aufgaben 4 bis 6, indem Sie die Zusammenhänge in den einzelnen Tabellen zusammensuchen. Wählen Sie dann etwas komplexere SELECT-Befehle, eventuell in Verbindung mit den Statistikfunktionen (z.B. Max(Kosten) )
• Versuchen Sie zum Schluss mit Hilfe jeweils nur einer einzigen SELECT-Anweisung die einzelnen Fragen der Aufgaben 4 bis 6 zu lösen! Hilfestellungen geben Ihnen sicherlich unten stehende Beispiele.
• In Aufgabe 7 wird vorausgesetzt, dass alle Mitarbeiter ohne Vorgesetzten in der Spalte VORGESETZT den Eintrag NULL haben. Verwenden Sie bei der Aufgabe 8 ausschließlich diese Information.
Beispiele:
SELECT Bezeichnung, Arbzeit, PlatzBez FROM Arbeitsvorgang
WHERE Kosten = (SELECT MAX(Kosten) FROM Arbeitsvorgang);
SELECT Bezeichnung, Arbzeit, PlatzBez FROM Arbeitsvorgang
WHERE Kosten >= ALL (SELECT Kosten FROM Arbeitsvorgang);
SELECT DISTINCT Name, Strasse, Preis FROM Auftrag, Auftragsposten, Kunde
WHERE Kundnr = Nr AND Auftrag.AuftrNr = Auftragsposten.AuftrNr AND Preis >= ALL (SELECT Preis FROM Auftragsposten);
Ich empfehle, bei langen Eingaben einen Editor zu verwenden. Speichern Sie den Befehl mit der Endung .SQL, führen Sie diesen Befehl dann mittels START aus.
Noch besser: Verwenden Sie unter Windows nicht SQL*PLUS, sondern SQL*PLUS-Worksheet.
Musterlösungen werden nach ca. einer Woche zur Verfügung gestellt (k:\sci\db).