Übungen zu Datenbanken WS 2016/2017 Blatt 7 Aufgabe 1: Gegeben sei der folgende B-Baum mit m = 1. 10 7 5 15 12 9 11 18 14 17 19 1. Fügen Sie den Schlüssel 21 und dann den Schlüssel 20 ein. Skizzieren Sie nach jedem Einfügen den Baum. 2. Löschen Sie in dem jetzt entstandenen Baum den Schlüssel 18 und dann den Schlüssel 7. Aufgabe 2: Gegeben ist folgendes SQL-Kommando: select Wohnort, Anrede, max(Betrag), max(Bestelldatum) from Bestellungen b, Kunden k where b.Kunden_Nr = k.Kunden_Nr and Anrede like '%Dr.' group by Wohnort, Anrede order by Wohnort 1. Welche Indizes könnten nützlich sein, um die Anfrage zu beschleunigen? 2. Welche Nachteile bringt die Vergabe der Indizes mit sich? Aufgabe 3: In einem Versandhandel sei eine Datenbank mit den bekannten vier Tabellen (ohne Mengeneinheiten) vorhanden. In der Firma gibt es drei Abteilungen mit jeweils 10 Mitarbeitern, die von ihren Arbeitsplätzen aus auf die Datenbank zugreifen müssen. Die Mitarbeiter von Abteilung 1 müssen für ihre Tätigkeitsgebiete die Artikel- und die Kundendaten verwalten (Datensätze anlegen, ändern, löschen). Die Mitarbeiter von Abteilung 2 müssen die Bestellvorgänge verwalten können (Bestellungen anlegen, ändern, löschen) und benötigen lesenden Zugriff auf die Artikel- und Kundendaten. In der Tabelle Artikel dürfen sie überdies das Attribut Bestand ändern. Die Mitarbeiter von Abteilung 3 führen Auswertungen mit den Daten durch, um das Käuferverhalten zu untersuchen. Es soll z. B. untersucht werden, wie oft ein Kunde, der einen Schnitzrohling bestellt, auch einen Satz Schnitzwerkzeuge dazu bestellt. Dabei ist ihnen jedoch der Zugriff auf Name, Vorname, Strasse, E-Mail-Adresse, Telefon-Nr. und TelefaxNr. der Kunden nicht gestattet. Für den Zugriff auf die Datenbank hat der Datenbankadministrator für jeden Mitarbeiter eine Datenbankkennung angelegt, unter der der Mitarbeiter sich bei der Datenbank anmeldet. Angenommen, die Mitarbeiter erledigen ihre Aufgaben mit SQL. Was würden Sie als Datenbankadministrator einrichten, um eine sichere Umgebung zu schaffen und den Mitarbeitern ihre Arbeit zu erleichtern? Geben Sie auch beispielhaft einige dazu benötigte SQL-Kommandos an. Bemerkung: falls für die Mitarbeiter Anwendungsprogramme eingerichtet werden (statt interaktivem Zugriff mittels SQL), würde der Datenbankadministrator auch eine solche Umgebung für die Anwendungsprogramme einrichten. Aufgabe 4: In einer Datenbank befinde sich eine Tabelle GEODATEN mit den Attributen Nr (int) sowie X, Y und Z (jeweils FLOAT) zur Speicherung der Koordinaten von 3-D-Punkten. Der Anwender Euler soll lesenden Zugriff auf die Daten haben. Er formuliert immer Anfragen an GEODATEN, bei denen X, Y, und Z ausgegeben werden. Dabei möchte er zusätzlich zu den Koordinaten für jeden Punkt den Abstand des Punktes vom Nullpunkt sehen. 1. Was richten Sie als Datenbankadministrator ein? Geben Sie die nötigen SQL-Kommandos an. 2. Wie kann der Anwender Euler die Koordinaten aller Punkte, die in der der x-z-Ebene liegen, einschließlich Abstand anfragen?