|
[ Home ]
|
|
Struktur dieser Seite: |
|
|
2.5 Datenbank-Struktur für Access 2016 |
Mehrere Fluggesellschaften möchten unter Verwendung
einer gemeinsamen Datenbank-Anwendung die Ausnutzung ihrer „täglichen Linienflugangebote“ kontrollieren. Ein „tägliches
Linienflugangebot“ ist ein regelmäßiger Linienflug, den eine Fluggesellschaft
für jeden Tag in gleicher Weise anbietet. Er führt von einem Flughafen A zu
einem Flughafen B und beginnt stets zur selben Zeit (wenigstens ist es so
geplant).
Jede der beteiligten Fluggesellschaften stellt ein
oder mehrere tägliche Linienflugangebote bereit.
Die täglichen Linienflugangebote ein und
derselben Fluggesellschaft werden durch eine laufende Nummer voneinander
unterschieden. Jedes tägliche Linienflugangebot hat eine geplante Abflugzeit,
genau einen Flughafen als Ausgangspunkt und genau einen Flughafen als
Zielpunkt. Die Fluggesellschaft mit der Kurzbezeichnung
FA (Fantasia Airlines, Hauptsitz in Utopia City) stellt unter anderen das
tägliche Linienflugangebot mit der laufenden
Nummer 333 bereit, das vom Flughafen mit dem Code TXL (Berlin-Tegel,
2 Start/Landepisten) beginnt und auf dem Flughafen mit dem Code UTC
(Utopia City, 1 Start/Landepiste) endet. Die geplante Abflugzeit ist 07:03
Uhr.
Im Informationssystem sollen Informationen über die
tatsächlich durchgeführten Flüge gespeichert werden. Jeder dieser Flüge entspricht
genau einem Linienflugangebot, wobei sich die Flüge, die demselben Linienflugangebot entsprechen, durch den Flugtag
voneinander unterscheiden. Zu jedem Flug muss außerdem bekannt sein, zu
welcher Zeit er tatsächlich begonnen hat und mit welchem Flugzeug er durchgeführt
wurde. Der Flug, der am 06.06.2016 entsprechend dem oben beschriebenen Linienflugangebot durchgeführt wurde, hatte beispielsweise
als Abflugzeit 07:44 Uhr und erfolgte mit einem Flugzeug vom Typ „Air wing“, das die Identitätsnummer
4711 trägt.
Für jeden Flug werden ein oder mehrere Flugscheine
ausgegeben. Ein Flugschein kann den Status „open“ haben, kann also noch
keinem Flug zugeordnet sein. Will niemand mit diesem Flug mitfliegen, findet
der Flug erst gar nicht statt. Jeder Flugschein gehört zu einem Flugticket.
In einem Flugticket können mehrere Flugscheine zusammengefasst sein (falls eine
Reise aus mehreren Flügen besteht). Die einzelnen Flugscheine innerhalb eines
Flugtickets werden durch eine laufende Nummer voneinander unterschieden
und durch die Flugklasse näher bestimmt.
Die Flugtickets müssen von einem autorisierten
Reisebüro ausgestellt werden. Beispielsweise enthält das Flugticket, das vom
Reisebüro „Kurze Ferien“ (15230 Frankfurt/Oder, Bahnhofsplatz 2, 120 m2
Verkaufsfläche, 2 Mitarbeiter) unter der vom Reisebüro vergebenen laufenden
Nummer 112233 am 05.05.2016 zum Preis von 123,45 Euro verkauft wurde, nicht nur
einen Flugschein für den angegebenen Flug in der Flugklasse BC, sondern auch
noch weitere Flugscheine. Dieses Ticket wurde an den Passagier Vera Cruz (15234
Frankfurt/Oder, Akazienweg 1, weiblich) verkauft, die schon zuvor oftmals
geflogen ist.
Weiterhin ist zu beachten:
· Fluggesellschaften, die keine täglichen
Linienflugangebote bereitstellen und die keine Flugzeuge besitzen, werden nicht
berücksichtigt.
·
·
In Vorbereitung
auf eventuelle Erweiterungen der Linienflugangebote
werden auch Flughäfen erfasst, die bisher noch für kein Linienflugangebot der
Fluggesellschaften Start- oder Lande-Flughafen sind.
· Zu einem neuen Linienflugangebot wurden
noch kein Flug durchgeführt.
·
·
Die
Identitätsnummer eines Flugzeugs ist nur innerhalb der Fluggesellschaft unikal,
der es gehört. Ein neues Flugzeug hat noch keinen Flug absolviert.
·
· Innerhalb eines Postleitzahl-Bezirks kann es nicht
mehrere namensgleiche Reisebüros geben. Ein Reisebüro wird erfasst, ehe es das
erste Flugticket verkauft hat.
·
· Unabhängig vom konkreten Reisebüro werden bei einer
Verkaufsfläche von 120 m2 stets 2 Mitarbeiter beschäftigt. Die bereits
vorgesehene Verkaufsfläche von 250 m2 (mit 5 Mitarbeitern) gibt es noch in
keinem Reisebüro.

Bemerkungen:
· Da sich die Linienflugangebote, die von ein und
derselben Fluggesellschaft bereitstellt werden, durch eine laufende Nummer
voneinander unterscheiden, erfolgt die Identifizierung des Objekttyps „Linienflugangebot“ durch die Kombination
aus der Beziehungstyp-Richtung „Linienflugangebot wird bereitgestellt von Fluggesellschaft“ und der Eigenschaft
„Angebots-Nr“.
·
Ein Flughafen ist
nicht – für sich genommen – ein „Start-Flughafen“ oder ein „Ziel-Flughafen“.
Das ist eine Frage der sachlogischen Zusammenhänge
zwischen dem Linienflugangebot und den Flughäfen.
Es müssen also zwei „parallele“ Beziehungstypen zwischen
„Linienflugangebot“ und „Flughafen“ modelliert werden. Das Datenmodell
schließt nicht aus, dass ein Linienflugangebot denselben Flughafen als Start-
und Ziel-Flughafen hat (Rundflug).
· Die durchgeführten Flüge, die demselben
Linienflugangebot entsprechen, unterscheiden sich voneinander durch den
Flugtag. Deshalb wird der Objekttyp „Flug“ durch die Kombination aus der
Beziehungstyp-Richtung „Flug entspricht
Linienflugangebot“ und der Eigenschaft „Flugtag“ identifiziert.
·
Die Speicherung
der tatsächlichen Abflugzeit („Ist-Abflugzeit“) zusätzlich zur geplanten
Abflugzeit („Soll-Abflugzeit“) bringt keine Redundanz mit sich. Jeder, der
schon einmal geflogen ist, weiß, dass diese beiden Zeiten nur in einem „losen
Zusammenhang“ stehen.
· Da die Ident-Nummer eines Flugzeugs von der Fluggesellschaft
vergeben wird, der es gehört, erfolgt die Identifizierung des Objekttyps „Flugzeug“ durch die Kombination aus der
Beziehungstyp-Richtung „Flugzeug gehört
Fluggesellschaft“ und der Eigenschaft „Ident-Nr“.
·
Es werden nur die
tatsächlich durchgeführten Flüge gespeichert. Deshalb muss es zu jedem Flug
wenigstens einen Flugschein geben (keine Optionalität!).
·
· Der Flugschein wird über seine Beziehung zum
Flugticket und durch seine Eigenschaft „Flugschein-Nr“
identifiziert.
·
Das Flugticket
wird über seine Beziehung zum Reisebüro und durch seine Eigenschaft „Ticket-Nr“ identifiziert.
· Es werden nur Passagiere gespeichert, die wenigstens
ein Flugticket gekauft haben. Somit ist die Beziehungstyp-Richtung
„Passagier kauft Flugticket“
nicht-optional.
·
Da die
Mitarbeiteranzahl von der Verkaufsfläche funktional abhängt, muss diese
Abhängigkeit im Rahmen eines gesonderten Objekttyps „Verkaufsfläche“
dargestellt werden und nicht innerhalb des Objekttyps „Reisebüro“, denn das
wäre eine Verletzung der 3. Normalform.
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:
Fluggesellschaft ( Flugges-Kurzbez,Name,Hauptsitz )
Linienflugangebot ( ÝFlugges-KurzbezÝ+Angebots-Nr,Soll-Abflugzeit )
Flughafen ( Flughafen-Code,Name,Zahl S/L-Pisten )
Flug ( ÝFlugges-Kurzbez+Angebots-NrÝ+Flugtag,Ist-Abflugzeit )
Flugzeug ( ÝFlugges-KurzbezÝ+Ident-Nr,Typ )
Flugschein ( ÝBüro-Name+PLZ+Ticket-NrÝ+Flugschein-Nr,Flugklasse,Status )
Flugticket ( ÝBüro-Name+PLZÝ+Ticket-Nr,Datum,Preis )
Reisebüro ( Büro-Name+PLZ,Stadt,Straße/Hausnr )
Passagier ( Name+Adresse,Geschlecht )
Verkaufsfläche ( Größe,Mitarbeiteranzahl )
Dabei wurden folgende Fremdschlüssel in die
Primärschlüssel aufgenommen:
|
Primärschlüssel |
des
Objekttyps |
wird
aufgenommen in |
Primärschlüssel
von |
|
Flugges-Kurzbez |
Fluggesellschaft |
Þ |
Linienflugangebot |
|
Flugges-Kurzbez+Angebots-Nr |
Linienflugangebot |
Þ |
Flug |
|
Flugges-Kurzbez |
Fluggesellschaft |
Þ |
Flugzeug |
|
Büro-Name+PLZ |
Reisebüro |
Þ |
Flugticket |
|
Büro-Name+PLZ+Ticket-Nr |
Flugticket |
Þ |
Flugschein |
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:
Fluggesellschaft ( Flugges-Kurzbez,Name,Hauptsitz )
* Linienflugangebot ( ÝFlugges-KurzbezÝ+Angebots-Nr,ÝStart-FlughafenÝ,ÝZiel-FlughafenÝ,Soll-Abflugzeit )
Flughafen
( Flughafen-Code,Name,Zahl S/L-Pisten )
* Flug ( ÝFlugges-Kurzbez+Angebots-NrÝ+Flugtag,Ý [Flugges-Kurzbez+] Ident-NrÝ,Ist-Abflugzeit )
Flugzeug
( ÝFlugges-KurzbezÝ+Ident-Nr,Typ )
* Flugschein
( ÝBüro-Name+PLZ+Ticket-NrÝ+Flugschein-Nr,
ÝFlugges-Kurzbez+Angebots-Nr+FlugtagÝ,Flugklasse,Status )
* Flugticket
( ÝBüro-Name+PLZÝ+Ticket-Nr,ÝPassagier-Name+AdresseÝ,Datum,Preis )
* Reisebüro
( Büro-Name+PLZ,ÝGrößeÝ,Stadt,Straße/Hausnr )
Passagier
( Name+Adresse,Geschlecht )
Verkaufsfläche ( Größe,Mitarbeiteranzahl )
Bemerkungen:
· Die folgenden 1:N‑Beziehungstypen können lediglich
unter Semantikverlust als 1:CN‑Beziehungstypen,
also gemäß der Transformationsregel T09,
repräsentiert werden:
|
Fluggesellschaft |
ßà |
Linienflugangebot |
|
Fluggesellschaft |
ßà |
Flugzeug |
|
Flugticket |
ßà |
Flugschein |
|
Passagier |
ßà |
Flugticket |
Es
kann also durch die Tabellen-Typbeschreibungen nicht gesichert werden, dass
Ø eine
Fluggesellschaft mindestens ein
Linienflugangebot bereitstellt,
Ø eine
Fluggesellschaft wenigstens ein
Flugzeug besitzt,
Ø ein Flugticket
mindestens einen Flugschein enthält,
Ø ein Passagier
zumindest ein Flugticket gekauft hat.
· Der C:N‑Beziehungstyp zwischen „Flug“ und
„Flugschein“ lässt sich nur als C:CN-Beziehungstyp repräsentieren. Durch die Tabellen-Typbeschreibung kann also nicht garantiert
werden, dass es zu einem durchgeführten Flug mindestens einen Flugschein gibt
(ein Flugzeug kann somit auch ohne einen einzigen Passagier fliegen!).
Für den C:CN-Beziehungstyp
stehen zwei Transformationsregeln zur Verfügung:
a) Transformationsregel T10 (die meisten
Flugscheine sind für einen konkreten Flug ausgestellt),
b) Transformationsregel T11 (fast alle
Flugscheine haben den Status „open“).
Es wurde angenommen, dass der Fall a) vorliegt.
Deshalb wurde keine Koppel-Tabelle
eingeführt. Stattdessen wurde in die Tabelle „Flugschein“ ein nicht-eingabepflichtiger Verweis auf den
„Flug“ aufgenommen (deshalb der Kursivdruck!).
· Da der Primärschlüssel der Tabelle „Flughafen“ zweimal
als Fremdschlüssel in die Tabelle „Linienflugangebot“ aufgenommen werden
muss, wurden die sich sonst doppelnden Benennungen „Flughafen-Code“ in
„Start-Flughafen“ bzw. „Ziel-Flughafen“ umbenannt.
· In der Tabelle „Flug“ müsste der Primärschlüssel der
Fluggesellschaft Flugges-Kurzbez
eigentlich zweimal auftauchen:
a)
als
Bestandteil des Primärschlüssels:
ÝFlugges-Kurzbez+Angebots-NrÝ+Flugtag
b)
als
Bestandteil des Verweises auf das Flugzeug:
ÝFlugges-Kurzbez+Ident-NrÝ
Geht
man jedoch davon aus, dass die Fluggesellschaft, die das Linienflugangebot
bereitstellt, stets identisch ist mit derjenigen, der das Flugzeug gehört,
dann muss ihr Primärschlüssel natürlich nicht
zweimal gespeichert werden. Er wurde deshalb beim Verweis auf das Flugzeug in
eckige Klammern gesetzt:
Ý [Flugges-Kurzbez+] Ident-NrÝ
Als zusätzliches
Attribut wird lediglich die „Ident-Nr“ aufgenommen.
Die „Ident-Nr“ bildet dann gemeinsam mit dem Attribut
„Flugges-Kurzbez“ aus dem Primärschlüssel den Verweis auf das Flugzeug.
· In der Tabelle „Flugticket“ wurde der ursprüngliche Primärschlüssel Name+Adresse
der Tabelle „Passagier“ im Interesse der besseren Verständlichkeit in die
„sprechendere“ Benennung ÝPassagier-Name+AdresseÝ umbenannt.


[ Home ]