Institut für Informationssysteme Dr. Robert Marti Claude Barthels David Sidler Informationssysteme für Ingenieure Herbstsemester 2016 Übung 4 Aufgabe 4.1 Datenmodelierung Sie haben den Auftrag eine neue Verwaltungssoftware für eine Bibliothek zu entwickeln. Diese Software muss folgende Aspekte berücksichtigen: 1. Eine Bibliothek enthält mehrere Exemplare des selben Buches. 2. Jedes Exemplar befindet sich in einem bestimmten Regal und wird durch die Exemplarnummer und die ISBNNummer des Buches identifiziert. 3. Zusätzlich zu der ISBN-Nummer, hat jedes Buch einen Titel, einen Autor, und einen Verlag. 4. Ein Buch kann zu mehreren Kategorien gehören. 5. Eine Kategorie kann mehrere Unterkategorien haben, oder selbst eine Unterkategorie sein. 6. Die Exemplare werden von Kunden ausgeliehen. Jeder Kunde hat einen Namen der ihn eindeutig identifiziert. 7. Wenn ein Kunde ein Exemplar ausleiht, muss er es zu einem bestimmten Datum zurückgeben. Entwickeln Sie ein passendes Datenbank-Schema: Zeichnen Sie das ER-Diagramm mit den entsprechenden Entitätstypen und Bezeihungstypen. Die Zeichnung muss keine Attribute, Primär- und Fremdschluüssel enthalten. Sie können diese separat auflisten. Aufgabe 4.2 Metaschema Entwickeln Sie ein Datenbank-Schema, welches es erlaubt, Informationen über SQL-Datenbanken zu speichern. Das Schema sollte insbesondere folgende Datenbank-Objekte beschrieben können: 1. SQL Tabellen mit ihren Kolonnen und deren Datentypen 2. Primärschlüssel und Eindeutigkeitsbedingungen (UNIQUE Constraints) 3. Fremdschlüssel einer Tabelle, inklusive der Tabelle, auf deren Primärschlüssel der Fremdschlüssel verweist. Aufgabe 4.3 Reverse Engineering Gegeben sind folgende Tabellen, inklusive Primär- und Fremdschlüssel: • Table: Artist {Artist Id, Artist First Name, Artist Family Name} PRIMARY KEY ( Artist Id ) • Table: Song (Song Id, Song Title, Genre) PRIMARY KEY ( Song Id ) • Table: Composer (Artist Id, Song Id) PRIMARY KEY ( Artist Id, Song Id ) FOREIGN KEY ( Artist Id ) REFERENCES Artist FOREIGN KEY ( Song Id ) REFERENCES Song • Table: Album (Album Id, Album Title, Album Artist Name, Release Date) PRIMARY KEY ( Album Id ) • Table: Track (Album Id, Track No, Duration) PRIMARY KEY ( Album Id, Track No ) FOREIGN KEY ( Album Id ) REFERENCES Album • Table: Recording (Album Id, Track No, Song Id) PRIMARY KEY ( Album Id, Track No, Song Id) FOREIGN KEY ( Album Id, Track No ) REFERENCES Track FOREIGN KEY ( Song Id ) REFERENCES Song Zeichnen Sie ein ER-Diagramm (ohne Attribute), welches diese Tabellen beschreibt. Hinweis: Letztlich müssen Sie die Bedeutung der Namen von Tabellen und Spalten nicht verstehen. Betrachten Sie insbesondere Primär- und Fremdschlüssel und vergleichen Sie diese mit den in der Vorlesung besprochenen Transformationsmustern. Aufgabe 4.4 BCNF Zerlegung und SQL Deklarationen Gegeben sei folgende Relation Payments(PayDate, PayType, Counterparty, Amount, Currency, Comment, BankId, BankName, AccNumber, AccOwner, OwnerStreetAdr, OwnerZipCode, OwnerCity) mit den Attributen • PayDate Datum der Zahlung • PayType Typ der Zahlung, z.B. Zahlungsauftrag, Dauerzahlungsauftrag, Internetzahlungsauftrag, Gutschrift • Counterparty Partei, welche Zahlung erhält bzw. leistet • Amount Geldsumme • Currency Währung • Comment freier Kommentar • BankId Identifikationsnummer der Bank (z.B. Bankleitzahl) • BankName Name der Bank • AccNumber Kontonummer • AccOwner Kontoinhaber (ein String) • OwnerStreetAdr Strasse und Hausnummer des Kontoinhabers • OwnerZipCode Postleitzahl der Adresse des Kontoinhabers • OwnerCity Name der Stadt, wo Kontoinhaber wohnt und den funktionalen Abhängigkeiten • PayDate Counterparty Amount Currency BankId AccNumber → BankName • BankId → BankName 2 • BankId AccNumber → AccOwner • AccOwner → OwnerStreetAdr OwnerZipCode • OwnerZipCode → OwnerCity Ihre Aufgaben: 1. Führen Sie eine sogenannte BCNF Zerlegung (BCNR = Boyce-Codd Normalform) durch. 2. Schreiben Sie die CREATE TABLE Statements für jede Relation. Deklarieren Sie einen PRIMARY KEY für jede Relation sowie alle FOREIGN KEYs. Abgabetermin: 8. November 2016 3