Ludwig-Maximilians-Universität München Department ”Institut für Informatik” Dr. Matthias Schubert Elke Achtert, Arthur Zimek München, 27.10.2005 Datenbanksysteme I WS 2005/06 Übungsblatt 2: Relationales Datenmodell, SQL-DDL Besprechung: 03.11. – 07.11.05 Abgabe aller mit Hausaufgabe markierten Aufgaben bis Donnerstag, 03.11.05, 12:00 Uhr Aufgabe 2-1 Relationales Datenmodell (Hausaufgabe) Achtung: Diese Aufgabe ist identisch mit Aufgabe 1-2 von Übungsblatt 1. Die Abgabefrist ist um eine Woche verlängert. D.h., die Übungsblätter 1 und 2 werden gemeinsam bewertet. Ein Großhandelsunternehmen bezieht Waren von verschiedenen Lieferanten zu bestimmten Preisen. Jeder Lieferant besitzt eine Adresse. Jede bezogene Ware wird von genau einem Lieferanten geliefert (nicht von mehreren). Die Informationen über die gelieferten Waren werden in einer Tabelle mit den Attributen Lieferant, Adresse, Ware und Preis gespeichert. Die Tabelle habe folgenden Inhalt: Lieferant Albrecht Albrecht Huber Huber Huber Meier Adresse Industriestr. 108 Industriestr. 108 Turmstr. 12 Turmstr. 12 Turmstr. 12 Tal 48 Ware Rußfilter Schutzbrillen Schrauben Dübel Nägel Spanplatten Preis 36.20 61.00 75.60 35.10 18.60 108.00 (a) Welcher Nachteil ergibt sich, wenn die Tabelle nach obigem Schema gespeichert wird? (b) Der Lieferant mit dem Namen Huber zieht in die Badstr. 34 um. Was ist beim Aktualisieren der Tabelle zu beachten? Welches Problem ergibt sich sonst? (c) Das Großhandelsunternehmen nimmt Spanplatten aus seinem Sortiment. Da Lieferant Meier nun keine Spanplatten mehr liefern soll, wird die entsprechende Zeile aus der Tabelle entfernt. Welcher Nachteil entsteht dadurch? (d) Welches Problem ergibt sich, wenn ein neuer Lieferant mit Adresse in die Tabelle eingefügt werden soll, der noch keine Ware liefert? (e) Spalten Sie obige Tabelle in mindestens zwei Tabellen auf, so dass die in (a) bis (d) diskutierten Probleme und Nachteile vermieden werden. Achten Sie auf die korrekte Verknüpfung Ihrer Tabellen. 1 Aufgabe 2-2 SQL-DDL Gegeben seien die Relationen Lieferant L, Teil T und Projekt P als Datenmodell für eine Lieferanten-TeileProjekte-Datenbank. Ferner existiert eine Relation LTP, die die Beziehungen der vorgenannten Relationen modelliert: L (lnr, lname, sitz) P (pnr, pname, ort) T (tnr, tname, farbe, gewicht, preis) LTP (lnr, tnr, pnr, menge) Die Schlüssel der jeweiligen Relationen sind variable Strings der maximalen Länge 10. Die Attribute gewicht und menge sind positive ganze Zahlen. Alle übrigen Attribute sind variable Strings der maximalen Länge 40. Die Attribute lname, tname und pname müssen immer gefüllt sein. (a) Geben Sie CREATE TABLE–Befehle mit den dafür notwendigen Constraints zur Definition des o.g. Datenbankschemas an. (b) Fügen Sie in die Lieferanten-Relation L eine weitere Spalte status von ganzzahligem Typ ein. (c) Ändern Sie den Datentyp des Attributs preis in eine Gleitkommazahl mit maximal 2 Nachkommastellen. (d) Löschen Sie die Spalte preis aus der Teile-Relation T. (e) Als krönenden Abschluß sollen Sie alle Tabellen wieder löschen. 2