Informatik

Qualifikationsphase 1

Datenbank: Bibliothek 1

Im Folgenden soll eine Datenbank für eine Buchausleihe modelliert werden. Es gelten die folgenden Vorgaben:

Es sollen alle Bücher der Schule in einer Datenbank erfasst werden. Im Moment gibt es Bücher in der Lehrerbibliothek, in der Schülerbibliothek und im Ausleihzentrum. Darüber hinaus existieren in den einzelnen Fachschaften kleine Büchereien. Es gibt Einzelexemplare und Bücher in größerer Stückzahl. Folgende Angaben über ein Buch sollen gespeichert werden: Autor, Titel, Themengebiet, Ort der Aufbewahrung, Ausleihstatus (Präsenz, übers Wochenende, vier Wochen, Schuljahr, Oberstufe), Erscheinungsjahr, Verlag, Stichworte (bis zu 20 pro Buch), Kurzbeschreibung. Eine Suche soll nach Themengebiet, Autor, Titel und Stichwort möglich sein. Weiterhin soll mit dieser Datenbank die Ausleihe im Ausleihzentrum organisiert werden. Dazu sollen die Ausleiher erfasst werden (Schüler und Lehrer) mit Namen und Vornamen, bei den Schülern außerdem Klasse und Tutor. Auf die Adresse kann verzichtet werden, da alle Schüler und Lehrer in der Schule erreichbar sind. In Sonderfällen kann man die Adresse im Sekretariat erfragen. Lehrer und Schüler können mehrere Bücher ausleihen. Die meisten Bücher sind schon mit einer Inventarnummer versehen (11-stellige Zahl, Beispiel: 20120321001. Die ersten vier Ziffern geben die Jahreszahl und die nächsten vier den Monat und den Tag der Inventarisierung an. Die letzten drei Ziffern werden fortlaufend vergeben.) Es muss möglich sein, neue Entleiher zu erfassen, bzw. alte zu löschen. Entleih- und Rückgabevorgänge müssen durchgeführt werden können. Das Programm soll ausgeben können: Entleiher eines bestimmten Buchtyps, alle entliehenen Bücher eines bestimmten Entleihers, Mahnungen an alle Entleiher, die ihre Frist überschritten haben. Für die Bücher in den Fachbibliotheken ist es nicht notwendig, Signaturen zu speichern, da keine Ausleihe von der zu entwickelnden Software durchgeführt werden soll. Bei diesen Büchern reicht es, neben den allgemeinen Angaben und dem Standort die Anzahl der maximal vorhandenen Exemplare einzugeben, damit der Sucher eine Vorstellung hat, wo und wie oft das Buch vorhanden ist.

Im Folgenden soll ein ER-Modell für die Buchausleihe entwickelt werden. Aus diesem Modell werden dann die eigentlichen Tabellen abgeleitet. Bei der Modellierung geht es darum, geeignete Entitäten zu definieren und mit notwendigen Attributen zu versehen. Beginnen wir mit den Ausleihern. Es sollten Name, Vorname, Status, Klasse und Tutor gespeichert werden. Um Schwierigkeiten bei gleichen Nachnamen aus dem Weg zu gehen, wird der Schlüssel AusleiherNr. eingefügt.

Laut Vorgabe können Bücher wie z.B. der Rechtschreibeduden sowohl in einzelnen Fachbibliotheken wie auch in der Lehrer- oder Schülerbibliothek vorkommen. In allen Fällen ist es aber der Rechtschreibeduden. Die Attribute ISBN-Nummer, Verlag usw. sind bei allen Exemplaren identisch. Es ist deshalb sinnvoll, eine Entität Buch zu definieren, von dem die Entität Ausleihbuch mit dem Attributen Ausleihzeit und InventarNr  und die Entität SonstigesExemplar mit den Attributen Ort und Anzahl mittels einer IS-A-Beziehung abgeleitet wird. Zwischen Ausleihbuch und Ausleiher besteht die Beziehung hat_ausgeliehen und dem Attribut Ausleihdatum.

Ein Stichwort kann nicht nur in einem Buch vorkommen. Deshalb wird eine Entität Stichwort gebildet, die die beiden Attribute StichwortNr und Stichwort hat. Zur Entität Buch steht sie in Verbindung über die Beziehung kommt_vor_in.

Das ER-Modell:

d 

Das ER-Diagramm unserer Bücherei-Verwaltung muss in eine relationale Datenbank umgesetzt werden. Die n:m-Beziehung zwischen Buch und Stichwort muss durch eine Beziehungs-Relation in zwei obligatorische 1:n-Beziehungen aufgelöst werden.  Zwischen Ausleihern und Status besteht eine 1 : n Beziehung.  Sachbücher werden oft von mehr als einem Autor geschrieben. Um auch diese Autoren zu finden, wird die Eigenschaft Autor aus der Entität Buch entfernt und in eine eigene Entität umgewandelt. Zwischen Buch und Ausleihbuch und zwischen Buch und SonstigesBuch besteht ebenfalls eine 1 : n Beziehung. Eine Interselektionstabelle ist nicht nötig. Die Beziehung "wird ausgeliehen" enthält ein eigenes Attribut. Deshalb wird hier die Tabelle Ausleihe erstellt.
Die Umsetzung im relationalen Modell hat folgendes Aussehen:

Buch (ISBN, Titel, Erscheinungsjahr, Verlag, Thema, Kurzbeschreibung)
Autor (AutorenNr, BuchNr, Autor)
Ausleihbuch (InventarNr, BuchNr, Ausleihzeit)
Stichwort (StichwortNr, Stichwort)
Ausleiher (AusleiherNr, Name, Vorname, Status)
KommtVorIn (BuchNr, StichwortNr)
SonstigesExemplar (ID, BuchNr, Ort, Anzahl)
Ausleihe (ID, AusleiherNr, InventarNr, Ausleihdatum)
Status (Klasse, Tutor)

c