Übungen Datenbanken IM-M 1 ----------------------------------------------------------------------------------------------------------------------------------------------- 1. Datenbanken / SQL (DML) Rechnerübung Gegeben sind folgende Relationen: R1: BUCH (BNr,Titel, Autor, Gebiet, Verlag, Preis) (s.u.) R2: ENTLEIHER (ENr, Name, Ort) (Der Zugriffspfad für diese Tabellen wird Ihnen in der einführenden Übung mitgeteilt) BNr Titel Autor Gebiet b15 Oracle8i Eickler DB b17 Java Welter Programmierung M+T 34.90 b25 Projektmanagem Hansen ent SW-Engineering Springer 52.50 b18 C++ Beck Programmierung Wiley 19.90 b20 Access Beck DB M+T 35.50 b16 WLAN Heller Netze Springer 49.90 …… …… …… …… …… …… Annahmen: Verlag Preis 59.90 Von einem Buch sei jeweils nur 1 Exemplar vorhanden Zu jedem Buch wird nur jeweils 1 Autor gespeichert 1.1 Datenwiedergewinnung: Formulieren Sie die folgenden Aufgaben in SQL: a) Lassen Sie sich den vollständigen Inhalt der beiden Tabellen anzeigen b) Gesucht ist jeweils die vollständige Information über alle Entleiher, die in Karlsruhe wohnen. c) Gesucht sind die Namen und Wohnorte aller Entleiher, aufsteigend sortiert nach dem Wohnort d) Hat der Verlag „M+T“ im Gebiet „DB“ Bücher mit einem Preis unter 40 (€) ? Gesucht: Titel, Verlag, Preis. e) Lassen Sie Titel und Preis aller Bücher zum Gebiet „DB“ anzeigen, absteigend nach dem Preis sortiert f) Lassen Sie Autor und Titel für alle Bücher anzeigen, bei denen der Autor mit „H“ beginnt g) Wieviele Bücher des Autors „Hansen“ sind in der Buchtabelle vorhanden? Ausgabe: Autor, Anzahl Bücher h) Wie hoch ist der Durchschnittspreis aller Bücher? Ausgabe: Durchschnittspreis i) Wie hoch ist der Durchschnittspreis aller Bücher der verschiedenen Verlage? Ausgabe: Verlag, Durchschnittspreis 1.2 Datenänderung Kopieren Sie die Relationen BUCH und ENTLEIHER in entsprechende Tabellen unter Ihrer Kennung. (Achtung: es werden nur Inhalte, keine evt. vorhandenen constraints übernommen) a) Nehmen Sie einen neuen „passenden“ Datensatz in die Tabelle Buch auf. b) Erhöhen Sie die Preise aller Bücher um 10%. Lassen Sie den Inhalt der Tabelle Buch anzeigen c) Entfernen Sie das Buch „C++“ des Autors „Beck“ aus der Datenbank. d) Wenn Sie den Anfangszustand der Tabelle Buch wieder herstellen wollen (also alle Änderungen rückgängig machen wollen), geben Sie folgenden SQL-Befehl: ROLLBACK Dies funktioniert aber NUR in der laufenden Sitzung! ----------------------------------------------------------------------------------------------------------------------------------------------Kühn/Fb W 2007 IMM-Ueb-Teil1 Übungen Datenbanken IM-M 2 ----------------------------------------------------------------------------------------------------------------------------------------------- 2. SQL (DML und DDL) Rechnerübung 2.1 Benutzer entleihen Bücher. Dies lässt sich unterschiedlich darstellen a) Entleiher Buch 1 b) n Entleiher Buch Ausleihe 1 n m ? 1 Geben Sie einen sinnvollen Satzaufbau für die Tabellen Buch und Ausleihe in den Fällen a) bzw. b) an und üÜberlegen Sie sich je (mindestens) 2 Argumente, die für Lösung a) bzw. b) sprechen. 2.2 Erstellen Sie die in Aufgabe 2.3b) entworfene Tabelle AUSLEIHE mit den von Ihnen festgelegten Feldern. Vereinbaren Sie dabei auch einen primary key. Welche Attribute vereinbaren Sie als NOT NULL und warum? 2.3 Füllen Sie diese Tabelle mit mindestens 10 Zeilen (auch mit bereits überschrittenem Rückgabedatum). Lassen Sie den Inhalt der Tabelle anzeigen. 2.4 Welche Ergebnistabelle liefert a) ein „kartesisches Produkt“ der beiden Tabellen Entleiher und Ausleihe b) ein (inner) Join der beiden Tabellen Entleiher und Ausleihe mit der Verbundbedingung: Entleiher.Enr=Ausleihe.Enr 2.5 Welche Bücher hat der Entleiher mit der Enr ... ausgeliehen (verwenden Sie eine „passende“ Enr). Anzeige: Enr, BNr, Rückgabedatum 2.6 Geben Sie die Benutzerinformationen zu den Benutzer aus, die Bücher ausgeliehen haben, deren Rückgabedatum überschritten ist (Ausgabe: Enr, Name, Ort; keine Duplikate in der Ausgabe). 2.7 Stellen Sie fest, wieviele Bücher jeder Benutzer jeweils ausgeliehen hat. Anzeige: Enr, Anzahl_entliehene_Bücher (verwenden Sie COUNT und GROUP BY). 2.8 Wie 3.6, aber Anzeige: Enr, Name, Anzahl_entliehene_Bücher 2.9 Der Entleiher Bauer mit der Entleihernummer e2 ist von Karlsruhe nach Stuttgart umgezogen. Ändern Sie seinen Eintrag entsprechend. Vereinbaren Sie für die Tabellen ENTLEIHER und BUCH nachträglich passende Felder als Primärschlüssel. 2.10 Vereinbaren Sie für die Tabelle AUSLEIHE nachträglich Foreign Key Constraints bzgl. der Tabellen ENTLEIHER und BUCH. 2.11 Verändern Sie die Struktur der Tabelle AUSLEIHE. Es soll nun auch festgehalten werden, ob und wann ein Entleiher gemahnt worden ist. Fügen Sie deshalb ein Attribut „Mahnkennzeichen“ hinzu: Mkz (erlaubte Werte: 0, 1, 2; Voreinstellung:0). Lassen Sie den Inhalt der Tabelle Ausleihe anzeigen. 2.12 Ändern Sie für alle Ausleihdatensätze, bei denen das Rückgabedatum überschritten ist, das Mahnkennzeichen auf: Mkz=1. ----------------------------------------------------------------------------------------------------------------------------------------------Kühn/Fb W 2007 IMM-Ueb-Teil1