Angabe zum zweiten Beispiel des Laborübungsteils aus Datenmodellierung SS08

Verena Charwat, Michael Jakl, Markus Pichlmair, Katrin Seyr

dm@dbai.tuwien.ac.at



Allgemeines

In diesem Übungsteil sollen Sie den Entwurf einer kleinen Datenbank üben. Sie müssen im ersten Schritt aus den untenstehenden Texten, die einen Ausschnitt der realen Welt beschreiben, ein ER Modell erstellen. [In Ihrer beruflichen Praxis werden Sie solche Texte gemeinsam mit dem Kunden in mehreren Gesprächen erstellen müssen.]

Nach der Erstellung des ER Modells führen Sie dieses in ein Relationenmodell über. Das Relationenmodell stellt dann die Grundlage für die Generierung der Datenbank dar.

Bitte versuchen Sie nach Möglichkeit die Beispiele eigenständig zu lösen, denn in der Praxis (und bei der Prüfung) sind Sie auch auf sich alleine gestellt.

Zeichnen Sie für die folgenden Angaben jeweils das ER-Diagramm in der (MIN, MAX) - Notation. Eine Unterstützung bei der Erstellung von ER Diagrammen bietet das Tool dia (http://live.gnome.org/Dia Achtung: im Diagramm Editor ER auswählen!). Handgeschiebene Diagramme und Relationenmodelle werden NICHT akzeptiert. Bei der Umwandlung in das Relationenmodell beachten Sie bitte, dass Sie möglichst wenig Relationen verwenden. Unterstreichen Sie sämtliche Primärschlüssel, schreiben Sie die Fremdschlüssel kursiv und stellen Sie sicher, dass ein Fremdschlüssel eindeutig der passenden Relation zugeordnet werden kann.


Ein Beispiel zur Notation

Ein Institut hat einen eindeutige Nummer, einen Namen und eine Adresse. Ein Lektor identifiziert sich anhand seiner Sozialversicherungsnummer, und hat einen Namen. Er ist genau einem Institut zugeordnet, ein Institut kann keine oder mehrere Lektoren haben. Weiters gibt es Lehrveranstaltungen, wobei diese eine eindeutige Nummer haben und einen Titel. Ein Lektor kann mehrere Lehrveranstaltungen leiten, eine Lehrveranstaltung kann von mehreren Lektoren geleitet werden, hat aber mindestens einen Leiter.

Das obige ER-Diagramm wird wie folgt im Relationenmodell dargestellt:

Institut (Nr, Name, Adresse)
Lektor (SVNr, Name, Institut.Nr)
LVA (Nr, Titel)
geleitet (LVA.Nr, Lektor.SVNr)


Das Abgabegespräch

  1. Sie müssen sich über den LVAManager zu einem Abgabegespräch anmelden. Bitte machen Sie das rechtzeitig, nach der ersten Abgabewoche ist die Wahrscheinlichkeit, noch einen freien Abgabetermin zu bekommen praktisch null.
  2. Sie müssen das erste (Beispiel Schule) und eines der zwei anderen untenstehenden Beispiele vollständig ausgearbeitet haben (ER-Modell, Relationenmodell und alle in den Aufgaben beschriebenen Varianten).
  3. Sie kommen mit Studentenausweis, den Unterlagen (ausgedruckt oder auf USB Stick - Achtung: .pdf oder .html gewünscht - .docx nicht lesbar) im Informatiklabor (http://www.inflab.tuwien.ac.at/) zu der von Ihnen reservierten Zeit vorbei, und absolvieren das Abgabegespräch.
  4. Sie haben maximal 20 Minuten für Ihre Abgabe.
  5. Sie können maximal 15 Punkte bei der Abgabe erreichen. Diese setzen sich wie folgt zusammen:
    6 Punkte:
    Zwei ER-Modelle vollständig gelöst und eines davon genau erklärt.
    5 Punkte:
    Die zwei dazugehörigen Relationenmodelle vollständig gelöst und eines davon genau erklärt.
    4 Punkte:
    Zwei Theoriefragen richtig beantwortet.
  6. Die Tutoren tragen ein Protokoll des Abgabegesprächs ein und Sie sehen, wieviele Punkte Sie bekommen haben.


Beispiel: Schule

Angabe

Die Direktorin einer Schule möchte, dass Sie eine Datenbankapplikation zur Unterstützung der Verwaltungsaufgaben erstellen.

Modellieren Sie in einem ersten Schritt die im System zu verwaltenden Personen:

Es sollen Schüler und Personal erfasst werden. Von beiden Personengruppen sind Vorname, Nachname und Geburtsdatum, sowie die eindeutige Sozialversicherungsnummer bekannt.

Für Personal wird zudem das Gehalt gespeichert. Bei ehemaligem Personal wird noch das Kündigungsdatum gespeichert. Bei Schülern speichert die Schule immer auch eine Notfalltelefonnummer, sowie die Adresse des Hauptwohnsitzes. Lehrer gehören zum Personal. Von ihnen sind zusätzlich die Jahre an Unterrichtserfahrung bekannt.

Zu guter Letzt sollen bei Schülern, deren Geschwister ebenfalls die Schule besuchen, diese auch vermerkt werden.

Als nächstes müssen Sie die Klassen und Räume der Schule speichern. Eine Klasse wird durch ihren eindeutigen Namen (1A, 1B, ....) identifiziert, weiters soll eine Beschreibung, wie z.B. ``Schulversuch'' oder ``musischer Zweig'' vorgesehen werden; ein Raum der Schule hat eine eindeutige Raumnummer und wird beschrieben durch seine Funktion (Klassenraum, Chemielabor, Computerraum etc.) und die Größe. Nun müssen Sie den Klassen genau einen Raum zuordnen, umgekehrt kann in einem Raum natürlich nur eine Klasse sitzen; Einige Räume (wie z.B. Labors, Musiksäle oder Computerräume) haben keine fixe Klassenzuordnung.

Weiters wird vermerkt, welche Schüler in welche Klasse gehen, wobei ein Schüler in genau einer Klasse ist. Die Klassengröße beträgt 10 bis maximal 25 Schüler. In jeder Klasse wird einer der Schüler zum Klassensprecher gewählt.

Darüber hinaus sollen die unterrichteten Fächer vermerkt werden. Jedes Fach hat eine eindeutige Abkürzung. Zu jedem Fach werden eine Bezeichnung sowie eine Kategorie (z.B. ``Schularbeitsgegenstand'') gespeichert.

Es soll weiters vermerkt werden, für welche Fächer jeder Lehrer eine Lehrbefugnis hat. Dabei ist jeder Lehrer zum Unterricht mindestens eines Faches befugt.

Nun müssen Sie speichern, welcher Lehrer welche Klasse in welchem Fach unterrichtet und wieviele Wochenstunden der Unterricht umfasst.

In der Schule werden öfters Lehrerkonferenzen abgehalten, in denen aktuelle Angelegenheiten besprochen werden. Eine Konferenz hat ein eindeutiges Datum, eine Bezeichnung und ein Protokoll. Auch die Dauer der jeweiligen Konferenz wird vermerkt. An jeder Konferenz müssen mindestens fünf Lehrer teilnehmen. An wievielen Konferenzen ein Lehrer teilnimmt, bleibt ihm überlassen.

Zu guter Letzt werden noch die bisherigen Zeugnisse der Schüler gespeichert. Bei jedem Zeugnis ist bekannt für welches Semester es ausgestellt wurde. Da jedes Semester zahlreiche Schüler ein Zeugnis erhalten, kann ein Zeugnis nur dann eindeutig identifiziert werden, wenn auch der Schüler, für den es ausgestellt wurde, bekannt ist. Gehen Sie davon aus, dass jeder Schüler pro Semester nur 1 Zeugnis erhält. Zu jedem Zeugnis wird auch dessen Inhalt (Noten) gespeichert.

Aufgaben


Beispiel: Eventfirma

Angabe

Eine Eventfirma hat sich auf die Organisation von Musikfestivals spezialisiert. Entwerfen Sie eine Datenbank, die ihr die Organisation von Veranstaltungen erleichtern soll.

Die Firma verwaltet für die Austragung der Veranstaltungen verschiedene Objekte, die je nach Bedarf bei den Events verwendet werden:

Neben diesen gibt es weitere nicht näher spezifizierte Objekte wie z.B. Pulte, Tische etc. Zu allen Objekten können, falls benötigt, Zusatzinformationen gespeichert werden.

Zur Verwaltung der Events werden in der Datenbank alle Adressen vermerkt, an denen Veranstaltungen stattfinden. Ein Adresse besteht aus eindeutiger ID und hat die Attribute Land, Postleitzahl, Ort, Straße und Nummer.

Jedes Event selbst wird ebenfalls in der Datenbank erfasst und identifiziert sich durch die Adresse, wo es stattfindet, und den Beginn der Veranstaltung. Weiters ist das Ende bekannt, sowie der Name des Events. Optional wird vermerkt, für wieviele Personen die Veranstaltung ausgelegt ist und für welche Zielgruppe (genau eine) das Event gedacht ist (z.B. Jugend, 30-40-Jährige, Senioren, ...).

Pro Event werden die zur Durchführung benötigten Objekte gespeichert:

Wenn es Zelte gibt, wird der Verwendungszweck notiert (zum Beispiel wird in einem Zelt bei einer Veranstaltung Essen verkauft, bei der nächsten Veranstaltung verwendet man es als Lager.)

Zusätzlich können bei Events beliebig viele nicht näher spezifizierte Objekte verwendet werden.

Nachdem die Objekte sehr viel Platz beanspruchen, besitzt die Firma zur Aufbewahrung der Objekte mehrere Lager. Die Lager identifizieren sich über eine ID und haben einen Namen sowie eine bestimmte Größe. Weiters wird die Adresse des Lagers gespeichert. Jedes Objekt wird in genau einem Lager aufbewahrt.

Bei jedem Event treten beliebig viele Bands auf. Eine Band ist eindeutig identifiziert durch ihren Namen. Weiters wird die Anzahl der Gruppenmitglieder, die Musikrichtung und das Herkunftsland gespeichert.

Zu guter Letzt werden noch Eintrittskarten angeboten. Es gibt unterschiedliche Typen von Karten (z.B. Stehplätze, Sitzplätze, VIP-Karten,...). Es ist bekannt, wieviele Karten pro Typ und Event vorhanden sind und wieviel diese kosten.

Aufgaben


Beispiel: Pizzeria

Angabe

Eine Pizzeria möchte für die Verwaltung ihres Betriebes eine kleine Datenbank verwenden.

Die Pizzeria hat verschiedene Getränke und Pizzen im Angebot:

Eine Pizza besteht aus verschiedenen Zutaten, wobei für jede Pizza mindestens drei Zutaten verwendet werden: Eine Zutat hat einen eindeutigen Namen und es ist der vorhandene Vorrat bekannt. Zu jeder Pizza wird vermerkt, wieviel von den jeweiligen Zutaten für die Zubereitung benötigt wird.

Als nächstes sollen die Angestellten erfasst werden. Jeder Angestellte hat Vor- und Nachname, eine eindeutige Sozialversicherungsnummer, eine Adresse und es wird das Gehalt des Angestellten vermerkt.

Die Angestellten werden in verschiedene Gruppen eingeteilt: Lieferanten (für das Lieferservice der Pizzeria), Kellner und Köche. Bei den Köchen wird ihre Qualifikation in der Datenbank erfasst.

Im Lokal gibt es viele Tische. Jeder Tisch hat eine eindeutige Nummer, es wird zusätzlich die Anzahl der maximalen Sitzplätze vermerkt. Jeder Kellner wird für fünf bis maximal zehn Tische eingeteilt, für jeden Tisch sind genau zwei Kellner verantwortlich.

Die Gäste wählen aus dem Angebot der Pizzeria beliebig viele Pizzen und Getränke, wobei ihre Bestellung in die Datenbank eingetragen wird: Jede Bestellung wird dem Tisch zugeordnet, an dem sie getätigt wurde. Die Tischnummer und ein Zeitstempel bestimmen zusammen jede Bestellung eindeutig. Zusätzlich wird der Betrag notiert, der von den Gästen zu begleichen ist. Ob ein Tisch diesen Betrag bereits gezahlt hat, wird in einem Boolean-Attribut bei der Bestellung vermerkt. Darüber hinaus wird eingetragen, welche Kellner die Bestellung bearbeiten, wobei jeder Bestellung mindestens ein Kellner zugeteilt ist.

Die Pizzeria besitzt neben ihrem Lokal auch ein Lieferservice. Sie speichert daher die Daten der Kunden, an welche sie etwas ausliefert.

Jedem Kunde wird eine eindeutige ID zugeordnet. Darüber hinaus werden Vorname, Nachname, Telefonnummer und Adresse vermerkt. Bei jedem Stammkunden wird weiters der Rabatt gespeichert, den man ihm bei Bestellungen gewährt.

Bestellungen über das Lieferservice laufen prinzipiell ähnlich ab wie Bestellungen, die im Lokal getätigt werden. Eine Bestellung wird über die ID des Kunden und einen Zeitstempel eindeutig identifiziert. Genau ein Lieferant ist für die Zustellung der Waren verantwortlich. Bei jeder Bestellung können natürlich beliebig viele Waren aus dem Angebot ausgewählt werden. Es wird der Preis der gesamten Bestellung vermerkt und ob sie bereits ausgeliefert wurde.

Schlussendlich wird noch für alle Angestellte gespeichert, von welchen Angestellten sie bei Erkrankung oder Inanspruchnahme von Urlaubszeit vertreten werden, wobei ein Angestellter von genau zwei Personen vertreten wird und beliebig viele Angestellte vertreten kann.

Aufgaben


Katrin Seyr 2008-04-01