Skip to Content

TU Wien Fakultät für Informatik DBAI Database and Artificial Intelligence Group
Top-level Navigation: Current-level Navigation:

Path: DBAI > Education > Datenbanksysteme > Übung > Beispiel 2

Tools: Drucken


Datenbanksysteme (VL 4.0, 181.186) Laborübungsteil, WS 2010/2011

Beispiel 2

Sie sollen für die öffentlichen Stadtbüchereien in Wien eine Datenbank erstellen, die folgende Informationen beinhaltet:

Aufgabenstellung

  1. Erstellen Sie für die oben beschriebene Datenbank ein Entity-Relationship-Diagramm. Benützen Sie dazu die (min, max)-Notation wie im Lehrbuch von Kemper/Eickler bzw. in der VU Datenmodellierung beschrieben. Andere Notationen werden nicht akzeptiert. Erstellen Sie das ER-Diagramm mit einem Grafikprogramm (z. B. Dia, Visio).

    Bedenken Sie dabei, dass an zwei Stellen (für Zweigstellen, sowie bei Personen) Adressen gespeichert werden müssen. Welche Vor- und Nachteile entstehen, wenn Sie einen eigenen Entitytypen für Adressen erstellen würden, wobei jede Adresse von einem künstlichen Schlüssel („aid“) identifiziert wird?

  2. Leiten Sie aus dem ER-Diagramm die Relationen der Datenbank in 3. Normalform so ab, dass sie verbundtreu und abhängigkeitstreu sind. Halten Sie diese Relationen schriftlich fest und machen Sie dabei PRIMARY und FOREIGN KEYS eindeutig kenntlich. Folgende Notation wird empfohlen:

    RelX (attr1, attr2, attr3, attr4: RelY.attrZ)

    bedeutet, dass die Datenbank eine Relation RelX enthält. Diese Relation hat 4 Attribute attr1, attr2, attr3 und attr4. Der Primary Key dieser Relation besteht aus den Attributen attr1 und attr2. Das Attribut attr4 ist ein Foreign Key auf das Attribut attrZ in der Relation RelY.

    Das Entity-Relationship-Diagramm sowie das Relationenmodell sollen gemeinsam in der Datei entwurf.pdf gespeichert werden. Für die Erstellung des PDFs kann beispielsweise das Tool doc2pdf verwendet werden.

  3. Erstellen Sie eine Datei create.sql, in welcher die nötigen CREATE-Befehle gespeichert werden, um die Relationen mittels SQL zu realisieren. Dabei sind folgende Punkte zu beachten:

    • Die Datenbank soll keine NULL-Werte enthalten.
    • Stellen Sie sicher, dass trotz des künstlichen Schlüssel in der Relation „Person“ niemals dieselbe Person mehrfach vorkommen kann. Stellen Sie dazu sicher, dass die Kombination aus Vorname, Nachname, Geburtsdatum und Adresse eindeutig ist.
    • Realisieren Sie folgende Attribute mit fortlaufenden Nummern mit Hilfe von Sequences: „nr“ von Entlehnkarte, „mediennr“ von Medien und „kid“ von Künstler. Das „nr“-Attribut soll bei 1.000.000.000 beginnen und anschließend in 15er-Schritten fortgesetzt werden (d.h. 1.000.000.015, 1.000.000.030, 1.000.000.045, ...); „mediennr“ und „kid“ sollen positive ganze Zahlen sein.
    • Sollten zwischen 2 Tabellen zyklische FOREIGN KEY Beziehungen existieren, so achten Sie darauf, dass eine Überprüfung dieser FOREIGN KEYs erst zum Zeitpunkt eines COMMIT stattfindet.
  4. Erstellen Sie eine weitere Datei insert.sql, welche die INSERT-Befehle für die Testdaten der in Punkt 3 erstellten Tabellen enthält. Jede Tabelle soll zumindest 6 Zeilen enthalten. Sie dürfen die Wahl der Namen, Bezeichnungen etc. so einfach wie möglich gestalten, d. h. Sie müssen nicht „real existierende“ Künstler, Bücher, Filme, etc. wählen, Stattdessen können sie ruhig „Buch 1“, „Buch 2“, „Film 1“, „Film 2“ etc. verwenden.

  5. Erstellen Sie eine Datei drop.sql, welche die nötigen DROP-Befehle enthält, um alle in Punkt 3 erzeugten Datenbankobjekte wieder zu löschen. Das Schlüsselwort CASCADE darf dabei nicht verwendet werden.

Für die Abgabe bereitzustellen

Bewertung

Für das Übungsbeispiel 2 werden maximal 10 Punkte vergeben. Im Rahmen des Abgabegesprächs wird nicht nur die Korrektheit der Lösungen, sondern auch (und vor allem) das Verständnis überprüft. Für die einzelnen Aufgaben erhalten Sie die maximal möglichen Punkte nur dann, wenn die Lösung richtig ist und wenn Sie in der Lage sind, diese Lösung auch entsprechend zu erklären.

Die Verteilung der Punkte erfolgt nach folgendem Schlüssel:

Hinweise zur Verwendung von psql

Folgende Befehle können für Ihre Arbeit mit der interaktiven SQL-Shell psql von PostgreSQL 8.4 hilfreich sein:


Home / Kontakt / Webmaster / Offenlegung gemäß § 25 Mediengesetz: Inhaber der Website ist das Institut für Logic and Computation an der Technischen Universität Wien, 1040 Wien. Die TU Wien distanziert sich von den Inhalten aller extern gelinkten Seiten und übernimmt diesbezüglich keine Haftung. Disclaimer / Datenschutzerklärung