|
[ Home ]
|
|
Struktur dieser Seite: |
|
Das Schnellbahn-Unternehmen der Stadt Ökopolis verfügt über moderne Wagen zur
Personenbeförderung, die durch eine unikale Wagennummer voneinander
unterschieden werden. Der Wagen mit der Nummer W1234 (Baujahr 2015) hat
beispielsweise 50 Sitzplätze und ist bisher 22.200 km gefahren. Mehrere Wagen
(mindestens zwei) gehören gemeinsam zu einem Zug, der durch seine Zugnummer
identifiziert wird. Dabei ist jeweils nur die aktuelle Zugzusammenstellung
von Interesse. Einige Wagen werden in der Reserve gehalten. Jedem Zug ist
eine Funk-Frequenz zugeordnet, über die die Funkabfertigung
auf den Bahnhöfen erfolgt. Außerdem ist für jeden Zug festgelegt, auf welchem
Bahnhof er nach Betriebsschluss abgestellt wird. Auf dem Bahnhof „Waldruhe“ (unikaler Bahnhofscode
WR, 3 Abstellgleise) wird beispielsweise neben anderen Zügen stets der Zug
Z111 abgestellt. Es gibt auch Bahnhöfe, die kein einziges Abstellgleis haben.
Das Unternehmen betreibt ein Gitternetz von Linien,
die jeweils in Nord/Süd- bzw. West/Ost-Ausrichtung verlaufen. Die Linie D
(Länge 17 km) hat beispielsweise als Grenzpunkte die Bahnhöfe „Nordend“ und „Südwiesen“. Der Bahnhof „Südwiesen“ ist auch Grenzpunkt
für die Linie G. Der Bahnhof „Rathaus“ ist für keine Linie Grenzpunkt.
Auf einer Linie werden am Tag mehrere Fahrten
durchgeführt, die jeweils vom einen Grenzpunkt der Linie zum entgegengesetzten
Grenzpunkt führen. Eine einzelne Fahrt ist gekennzeichnet durch die Linie,
den Tag, die Anfangszeit der Fahrt und durch die Fahrtrichtung (NS, SN, WO bzw.
OW). Für jede Fahrt soll außerdem ersichtlich sein, mit welchem Zug sie erfolgt
ist und wer der Fahrer war. Beispielsweise wurde die Fahrt, die auf der Linie D
am 06.06.2016 um 5.30 Uhr begann und in Nord-Süd-Richtung (NS) erfolgte, mit
dem Zug Z111 durchgeführt, den Claus Thaler (Personalnummer
4711, geb. 06.06.66) gefahren hat – und das ausgerechnet an seinem 50.
Geburtstag!
Auf der Grundlage umfangreicher
Sicherheitsvorschriften erfolgt eine regelmäßige „Technische Überprüfung“ der
Wagen des Unternehmens. So wird ein Wagen erst dann in den Bestand aufgenommen
und gespeichert, wenn die erste Technische Überprüfung erfolgt ist. An einer
Technischen Überprüfung nehmen zwei zugelassene Prüfer und ein Fahrer teil.
Die verschiedenen Technischen Überprüfungen ein und desselben Wagens werden
durch den jeweiligen Prüftag voneinander
unterschieden. Beispielsweise wurde der Wagen W1234 zum ersten Mal am
05.05.2015 überprüft. An dieser Prüfung waren der Fahrer Claus Thaler sowie
der Prüfer Rudi Ment (Personalnummer 9999) und die
Prüferin Lotte Rie (Personalnummer 8888) beteiligt.
Es wurde die Prüfnote 2 vergeben.
Weiterhin ist zu beachten:
· Ein gerade erst zusammengestellter Zug hat noch keine
Fahrt absolviert.
·
·
Die Linie N wird
erst morgen eingeweiht. Auf ihr wurde noch keine Fahrt durchgeführt. Eine
Fahrt bleibt auch dann noch gespeichert, wenn der Zug, mit dem sie durchgeführt
wurde, schon wieder aufgelöst und in der Datenbank gelöscht wurde. Wird
dagegen eine Linie gelöscht, dann werden die auf ihr durchgeführten Fahrten
mitgelöscht.
· Neu eingestellte Fahrer werden zunächst geschult, ehe
sie die erste Fahrt durchführen. Natürlich nehmen sie in dieser Zeit auch
keine Technischen Überprüfungen vor. Wenn ein Fahrer oder ein Prüfer das
Unternehmen verlässt, dann bleiben seine Daten weiterhin gespeichert.
·
·
Um Personalengpässe
zu vermeiden, werden stets einige Prüfer als „Reserve“ gespeichert, die bisher
noch keine Technische Überprüfung durchgeführt haben.
·

Bemerkungen:
· Da nur die aktuelle Zugzusammenstellung von Interesse
ist, kann ein Wagen zu höchstens einem Zug gehören (Kardinalität 1).
Andererseits werden Wagen in der Reserve gehalten: sie gehören dann zu keinem
Zug (Optionalität).
·
Eine einzelne
Fahrt ist gekennzeichnet durch die Linie, den Tag, die Anfangszeit der Fahrt
und durch die Fahrtrichtung (NS, SN, WO bzw. OW). Die Identifizierung des
Objekttyps „Fahrt“ erfolgt somit durch die Kombination aus der Beziehungstyp-Richtung „Fahrt wird durchgeführt auf Linie“ und aus den Eigenschaften „Tag“,
„Anfangszeit“ und „Richtung“.
· Eine Fahrt bleibt auch dann noch gespeichert, wenn der
Zug, mit dem sie durchgeführt wurde, schon wieder aufgelöst und in der
Datenbank gelöscht wurde. Deshalb muss es erlaubt sein, dass eine gespeicherte
Fahrt mit keinem Zug in Beziehung steht. Die Beziehungstyp-Richtung „Fahrt erfolgt mit Zug“ muss also optional
sein.
·
Da das Auflösen
einer Linie das Löschen der auf ihr durchgeführten Fahrten nach sich zieht,
steht eine gespeicherte Fahrt stets in Beziehung mit einer Linie. Die Beziehungstyp-Richtung „Fahrt wird durchgeführt auf Linie“ ist deshalb nicht-optional.
· Die Daten eines Mitarbeiters bleiben auch dann noch
gespeichert, wenn er das Unternehmen verlassen hat. Deshalb können die Beziehungstyp-Richtungen „Fahrt wird durchgeführt von Fahrer“ und „Technische Überprüfung erfolgt durch Fahrer“ als
nicht-optional angegeben werden.
·
Da ein Wagen erst
dann in den Bestand aufgenommen und gespeichert wird, wenn die erste
Technische Überprüfung erfolgt ist, muss die Beziehungstyp-Richtung „Wagen erfährt Technische Überprüfung“
nicht-optional sein.
·
· Die Technische Überprüfung wird über ihre Beziehung
zum Wagen und durch den Prüftag identifiziert.
Zunächst werden die Objekttypen in Tabellen
transformiert (Transformationsregel T01). Danach erfolgt die Transformation der
Beziehungstyp-Richtungen, die als identifizierende Elemente für die „schwachen“
Objekttypen verwendet wurden (Transformationsregel
T02). Im Ergebnis dieser beiden Transformationen ergeben sich die folgenden
vorläufigen Tabellen-Typbeschreibungen:
Wagen ( Wagen-Nr,Baujahr,Sitzplatzanzahl,Fahrstrecke )
Zug ( Zug-Nr,Funkfrequenz )
Bahnhof ( Bahnhofs-Code,Name,Anzahl Abstellgleise )
Linie ( Linien-Bez,Länge )
Fahrt ( ÝLinien-BezÝ+Tag+Anfangszeit+Richtung )
Fahrer ( Personal-Nr,Name,Geburtsdatum )
Technische
Überprüfung ( ÝWagen-NrÝ+Tag,Prüfnote )
Prüfer ( Personal-Nr,Name )
Dabei wurden folgende Fremdschlüssel in die
Primärschlüssel aufgenommen:
|
Primärschlüssel |
des
Objekttyps |
wird
aufgenommen in |
Primärschlüssel
von |
|
Linien-Bez |
Linie |
Þ |
Fahrt |
|
Wagen-Nr |
Wagen |
Þ |
Technische
Überprüfung |
Im nächsten Schritt werden die dualen Beziehungstypen
in das relationale Datenbank-Modell transformiert (Transformationsregeln
T03 bis T12). Die veränderten Typbeschreibungen sind jeweils durch einen Stern
gekennzeichnet:
* Wagen ( Wagen-Nr,ÝZug-NrÝ,Baujahr,Sitzplatzanzahl,Fahrstrecke )
* Zug ( Zug-Nr,ÝBahnhofs-CodeÝ,Funkfrequenz )
Bahnhof
( Bahnhofs-Code,Name,Anzahl Abstellgleise )
* Linienbegrenzung ( ÝBahnhofs-CodeÝ+ÝLinien-BezÝ )
Linie ( Linien-Bez,Länge )
* Fahrt ( ÝLinien-BezÝ+Tag+Anfangszeit+Richtung,ÝPersonal-NrÝ,ÝZug-NrÝ )
Fahrer ( Personal-Nr,Name,Geburtsdatum )
* Technische Überprüfung ( ÝWagen-NrÝ+Tag,ÝPersonal-NrÝ,Prüfnote )
* Prüferaktivität ( ÝWagen-Nr+TagÝ+ÝPersonal-NrÝ )
Prüfer (Personal-Nr,Name )
Bemerkungen:
· Der 1:N‑Beziehungstyp zwischen „Wagen“ und
„Technische Überprüfung“ kann nur als 1:CN‑Beziehungstyp repräsentiert werden
(Transformationsregel T09). Es kann also – entgegen den
Sicherheitsbestimmungen – nicht garantiert werden, dass ein
gespeicherter Wagen wenigstens eine Technische Überprüfung erfahren hat.
· Der C:N‑Beziehungstyp zwischen „Zug“ und „Wagen“
lässt sich nur als C:CN-Beziehungstyp repräsentieren. Die Kardinalitäts-Beschränkung ist erst recht nicht
darstellbar. Mit der Tabellen-Typbeschreibung kann also nicht verhindert werden,
dass ein Zug gespeichert wird, der keinen einzigen oder nur einen Wagen hat.
Für den C:CN-Beziehungstyp
stehen zwei Transformationsregeln zur Verfügung:
a) Transformationsregel
T10 (die meisten Wagen gehören zu einem Zug),
b) Transformationsregel T11 (die meisten Wagen
werden in der Reserve gehalten).
Sicherlich kann man den Fall a) annehmen. Deshalb
wurde keine Koppel-Tabelle
eingeführt. Stattdessen wurde in die Tabelle „Wagen“ ein nicht-eingabepflichtiger Verweis auf den „Zug“ aufgenommen (deshalb
der Kursivdruck!).
·
Für die
Repräsentation des C:CN-Beziehungstyps zwischen „Zug“ und „Fahrt“ stehen
dieselben beiden Transformationsregeln zur
Verfügung:
a)
Transformationsregel
T10 (den meisten Fahrten ist ein gespeicherter Zug zugeordnet),
b) Transformationsregel
T11 (die meisten Fahrten wurden mit einem Zug durchgeführt, der inzwischen
schon in der Datenbank gelöscht wurde)
Es
wurde angenommen, dass die Zug-Zusammenstellungen relativ stabil sind und dass
gegebenenfalls Züge, die zwar physisch nicht mehr existieren, in der Datenbank
trotzdem noch eine Weile gespeichert bleiben. Deshalb wurde keine Koppel-Tabelle eingeführt.
Stattdessen wurde in die Tabelle „Fahrt“ ein nicht-eingabepflichtiger Verweis auf den „Zug“ aufgenommen (deshalb
der Kursivdruck!).
·
Die folgenden
M:CN‑Beziehungstypen lassen sich nur unter Semantikverlust
als CM:CN‑Beziehungstypen – also gemäß der Transformationsregel
T12 – repräsentieren:
|
Bahnhof |
ßà |
Linie |
|
Prüfer |
ßà |
Technische Überprüfung |
Die Kardinalitäts-Beschränkungen
lassen sich erst recht nicht durchsetzen. Es kann also durch die Tabellen-Typbeschreibungen der Koppel-Tabellen
„Linienbegrenzung“ bzw. „Prüferaktivität“ nicht
gesichert werden, dass
Ø eine Linie genau 2 Bahnhöfe als Grenzpunkte hat (es kann
beispielsweise geschehen, dass für eine Linie gar kein, nur ein Bahnhof oder
sogar drei Bahnhöfe als Grenzpunkte angegeben werden),
Ø eine Technische Überprüfung durch genau 2 Prüfer erfolgt
(es kann vorkommen, dass ihr kein Prüfer, ein Prüfer oder beispielsweise drei
Prüfer zugeordnet werden).


[ Home ]