|
[ Home ]
|
|
Struktur dieser Seite: |
|
Eine Tankstellenkette möchte in allen größeren Orten
der Region Tankstellen einrichten und die relevanten Daten in einer Datenbank
speichern.
In Kleinkennstenich (Kreis Hintermberg, 2.000
Einwohner) gibt es noch keine Tankstelle, in Benzhausen (Kreis Mobilland,
75.000 Einwohner) bereits drei Tankstellen. Eine dieser Tankstellen befindet
sich in der Rennstraße 77 (PLZ 98765); sie hat eine Fläche von 3.700
m2 und 13 Mitarbeiter, über die Personalnummer, Name und Adresse
gespeichert werden. Ein Mitarbeiter kann mehreren – höchstens drei – Tankstellen
zugeordnet sein. Mitarbeiter können andere Mitarbeiter anleiten, wobei ein
Mitarbeiter mehrere Chefs haben kann und ein Chef mindestens 3 Mitarbeiter
anleitet.
Jede Tankstelle der Kette kann selbst wählen, von
welchem Großhändler sie den Kraftstoff bezieht. Der Großhändler „Peter
Petrolius AG“ ist für die Kette von großem Interesse, auch wenn er noch mit
keiner Tankstelle zusammenarbeitet. Für jeden Großhändler wird – über dessen
unikalen Firmennamen hinaus – noch die Anschrift des Hauptsitzes gespeichert.
Die oben genannte Tankstelle hat 8 Kraftstofftanks,
wobei der Tank mit der Nummer 3 ein Fassungsvermögen von 70.000 l und
einen Füllstand von 35 % hat. Er enthält den Kraftstoff mit der Bezeichnung
„Superbenzin bleifrei“. Der Kraftstoff „Superbenzin bleifrei“ hat eine
Oktanzahl von 95 und kostet heute an allen Tankstellen der Kette 1,36 Euro.
Die Tankstelle verfügt über 12 Zapfsäulen. Eine Zapfsäule ist jeweils mit
genau 4 Kraftstofftanks verbunden, ein Tank kann mehrere Zapfsäulen speisen. Der
Tank 9 ist vorübergehend stillgelegt: Er enthält keinen Kraftstoff und
versorgt keine Zapfsäule.
Es werden Angaben über die Tankvorgänge gespeichert.
Zu jedem Tankvorgang muss ersichtlich sein, an welcher Zapfsäule welcher
Kraftstoff in welcher Menge getankt wurde und wie hoch der Tankpreis war.
Gegebenenfalls kann dem Tankvorgang auch das betankte Fahrzeug zugeordnet
werden – jedoch nur dann, wenn das Bezahlen „vergessen“ wurde. So wurde beispielsweise
in der betrachteten Tankstelle am 06.06.2016 um 06:06 Uhr an der Zapfsäule 6
ein blauer VW Golf mit dem polizeilichen Kennzeichen „GAUN ER 006“ betankt,
ohne dass bezahlt wurde. Das ist besonders ärgerlich, weil dieses Fahrzeug
schon zum dritten Mal einem Tankvorgang zugeordnet wurde.
Weiterhin ist zu beachten:
· Die Tankstellen der Kette werden nur in Orten und
nicht auf freier Strecke eingerichtet.
·
·
Eine neu
eingerichtete Tankstelle hat noch keinen Mitarbeiter eingestellt und hat noch
zu keinem Großhändler Kontakt. Später kann sie dann aber nur von einem Großhändler den Kraftstoff
beziehen.
· Die Kraftstofftanks und die Zapfsäulen werden
innerhalb einer Tankstelle jeweils durchnummeriert. Es gibt somit in der Tankstellenkette
sehr viele Tanks bzw. Zapfsäulen mit der Nummer 1.
·
·
Eine Tankstelle
hat mindestens 4 Kraftstofftanks und mindestens 2 Zapfsäulen. Kraftstoff einer
Sorte kann sich in mehreren Tanks befinden. Ein Kraftstoff ist in wenigstens
einem Tank vorhanden.
·
· An einer Zapfsäule kann zu einem Zeitpunkt nur ein
Tankvorgang stattfinden. Einer gerade erst installierten Zapfsäule wurde noch
kein Tankvorgang zugeordnet.
·
· Es werden nur solche Fahrzeuge gespeichert, die
wenigstens einem
„finanzierungsfreien“ Tankvorgang zugeordnet wurden.

Bemerkungen:
· Da nicht gesichert ist, dass es in einem
Postleitzahl-Bezirk nur eine einzige Tankstelle gibt, wird der Objekttyp „Tankstelle“
durch die Kombination aus den Eigenschaften „PLZ“ und „Straße/Hausnr“
identifiziert.
·
Die
Kraftstofftanks und die Zapfsäulen werden jeweils innerhalb einer Tankstelle
durchnummeriert. Deshalb erfolgt die Identifizierung des Objekttyps
„Kraftstofftank“ (bzw. „Zapfsäule“) durch die Kombination aus der
Beziehungstyp-Richtung „Kraftstofftank gehört
zu Tankstelle“ (bzw. „Zapfsäule gehört
zu Tankstelle“) und der Eigenschaft „Tank-Nr“ (bzw. „Säulen-Nr“).
· An einer Zapfsäule kann zu einem Zeitpunkt nur ein Tankvorgang
stattfinden. Deshalb ist der Objekttyp „Tankvorgang“ durch die Kombination
aus der Beziehungstyp-Richtung „Tankvorgang erfolgt an Zapfsäule“ und der Eigenschaft „Zeitpunkt“
identifizierbar.
·
Die Speicherung
des Tankpreises im Objekttyp „Tankvorgang“ bringt keine Redundanz mit sich.
Der aktuelle Preis des Kraftstoffs ändert sich nämlich häufig, sodass sich aus
der Kenntnis des Kraftstoffs und der getankten Menge später der Tankpreis nicht
mehr rekonstruieren lässt.
· Ein und dasselbe Fahrzeug kann mehreren „finanzierungsfreien“
Tankvorgängen zugeordnet werden. Deshalb muss die Beziehungstyp-Richtung
„Fahrzeug wird zugeordnet zu
Tankvorgang“ die Kardinalität N aufweisen.
·
Es wird
angenommen, dass eventuell ein neuer Kraftstoff gespeichert werden muss, der
noch für keinen Tankvorgang verwendet wurde. Deshalb ist die
Beziehungstyp-Richtung „Kraftstoff wird
verwendet für Tankvorgang“ optional.
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:
Ort ( Ortsname+Kreis,Einwohnerzahl )
Tankstelle ( PLZ+Straße/Hausnr,Fläche )
Mitarbeiter ( Personal-Nr,Name,Adresse )
Großhändler ( Firmenname,Hauptsitz )
Kraftstofftank ( ÝPLZ+Straße/HausnrÝ+Tank-Nr,Fassungsvermögen,Füllstand )
Kraftstoff ( Kraftstoff-Bez,Oktanzahl,Aktueller
Preis )
Zapfsäule ( ÝPLZ+Straße/HausnrÝ+Säulen-Nr )
Tankvorgang ( ÝPLZ+Straße/Hausnr+Säulen-NrÝ+Zeitpunkt,Menge,Tankpreis )
Fahrzeug ( Pol. Kennzeichen,Typ,Farbe )
Dabei wurden folgende Fremdschlüssel in die
Primärschlüssel aufgenommen:
|
Primärschlüssel |
des
Objekttyps |
wird
aufgenommen in |
Primärschlüssel
von |
|
PLZ+Straße/Hausnr |
Tankstelle |
Þ |
Kraftstofftank |
|
PLZ+Straße/Hausnr |
Tankstelle |
Þ |
Zapfsäule |
|
PLZ+Straße/Hausnr+Säulen-Nr |
Zapfsäule |
Þ |
Tankvorgang |
Im nächsten Schritt werden die dualen Beziehungstypen
in das relationale Datenbank-Modell transformiert (Transformationsregeln T03
bis T12). Dann erfolgt die Transformation des CM:CN‑Rekursiv-Beziehungstyps
von „Mitarbeiter“ gemäß der Transformationsregel T19. Die veränderten
Tabellen-Typbeschreibungen sind jeweils durch einen Stern gekennzeichnet:
Ort ( Ortsname+Kreis,Einwohnerzahl )
* Tankstelle
( PLZ+Straße/Hausnr,ÝFirmennameÝ,ÝOrtsname+KreisÝ,Fläche )
* Personal-Zuordnung ( ÝPLZ+Straße/HausnrÝ+ÝPersonal-NrÝ )
Mitarbeiter ( Personal-Nr,Name,Adresse )
* Anleitung
( ÝPersonal-NrÝ+ÝChef-Personal-NrÝ )
Großhändler ( Firmenname,Hauptsitz )
* Kraftstofftank ( ÝPLZ+Straße/HausnrÝ+Tank-Nr,ÝKraftstoff-BezÝ, Fassungsvermögen,Füllstand )
* Rohrverbindung ( ÝPLZ+Straße/Hausnr+Säulen-NrÝ+Ý[PLZ+Straße/Hausnr+] Tank-NrÝ )
Kraftstoff ( Kraftstoff-Bez,Oktanzahl,Aktueller
Preis )
Zapfsäule
( ÝPLZ+Straße/HausnrÝ+Säulen-Nr )
* Tankvorgang
( ÝPLZ+Straße/Hausnr+Säulen-NrÝ+Zeitpunkt,ÝKraftstoff-BezÝ,Menge,Tankpreis )
* Unbezahlter Tankvorgang ( ÝPLZ+Straße/Hausnr+Säulen-Nr+ZeitpunktÝ,ÝPol. KennzeichenÝ )
Fahrzeug
( Pol. Kennzeichen,Typ,Farbe )
Bemerkungen:
· Die folgenden 1:N‑Beziehungstypen können
lediglich unter Semantikverlust als 1:CN‑Beziehungstypen – also gemäß
der Transformationsregel T09 – repräsentiert werden:
|
Tankstelle |
ßà |
Kraftstofftank |
|
Tankstelle |
ßà |
Zapfsäule |
Die
Kardinalitäts-Beschränkungen lassen sich erst recht nicht durchsetzen. Es kann
also durch die Tabellen-Typbeschreibungen nicht gesichert werden, dass
Ø eine Tankstelle mindestens 4 Kraftstofftanks hat,
Ø eine Tankstelle über wenigstens 2 Zapfsäulen verfügt.
· Der C:N‑Beziehungstyp zwischen „Kraftstoff“ und
„Kraftstofftank“ lässt sich nur als C:CN-Beziehungstyp repräsentieren. Die
Tabellen-Typbeschreibung kann also nicht garantieren, dass sich jeder
Kraftstoff in mindestens einem Kraftstofftank befindet.
Für den C:CN-Beziehungstyp
stehen zwei Transformationsregeln zur Verfügung:
a) Transformationsregel
T10 (die meisten Kraftstofftanks enthalten einen Kraftstoff),
b) Transformationsregel T11 (die meisten
Kraftstofftanks sind leer).
Natürlich kann sich eine Tankstelle nur den Fall a)
leisten. Deshalb wurde keine
Koppel-Tabelle eingeführt. Stattdessen wurde in die Tabelle „Kraftstofftank“
ein nicht-eingabepflichtiger Verweis
auf den „Kraftstoff“ aufgenommen (deshalb der Kursivdruck !).
·
Der C:N‑Beziehungstyp
zwischen „Fahrzeug“ und „Tankvorgang“ lässt sich wiederum nur als C:CN-Beziehungstyp
repräsentieren. Die Tabellen-Typbeschreibung lässt dann unsinnigerweise
die Speicherung eines Fahrzeugs zu, das keinem einzigen Tankvorgang
zugeordnet wurde.
Für den C:CN-Beziehungstyp
stehen wiederum zwei Transformationsregeln zur Verfügung:
a)
Transformationsregel
T10 (den meisten Tankvorgängen wird ein Fahrzeug zugeordnet, d. h.: fast
alle Kunden der Tankstellenkette „vergessen“ das Bezahlen),
b) Transformationsregel
T11 (den meisten Tankvorgängen wird kein Fahrzeug zugeordnet, weil die meisten
Kun- den ehrlich sind und ordnungsgemäß
bezahlen).
Im
Interesse der Tankstellenkette und im Glauben an das Gute im Menschen wollen
wir annehmen, dass der Fall b) vorliegt. Deshalb wurde – gemäß der Transformationsregel
T11 – eine Koppel-Tabelle „Unbezahlter Tankvorgang“ eingeführt, durch die
die wenigen „finanzierungsfreien“ Tankvorgänge mit dem jeweiligen Fahrzeug
in Verbindung gebracht werden – im Unterschied zum PowerDesigner, der die
Transformationsregel T10 verwendet (s. Abschnitt 4.4).
·
Für den
C:CN-Beziehungstyp zwischen „Großhändler“ und „Tankstelle“ stehen ebenfalls
die beiden Transformationsregeln zur Verfügung:
a)
Transformationsregel
T10 (die meisten Tankstellen beziehen Kraftstoff von einem Großhändler),
b) Transformationsregel
T11 (die meisten Tankstellen stehen noch mit keinem Großhändler in Kontakt).
Sicherlich
wird der Fall a) vorliegen. Deshalb wurde keine
Koppel-Tabelle eingeführt. Stattdessen wurde in die Tabelle „Tankstelle“ ein nicht-eingabepflichtiger Verweis auf den
„Großhändler“ aufgenommen (deshalb der Kursivdruck !).
·
Die folgenden
M:CN-Beziehungstypen können nur unter Semantikverlust als CM:CN‑Beziehungstypen,
also gemäß der Transformationsregel T12, repräsentiert werden:
|
Tankstelle |
ßà |
Mitarbeiter |
|
Kraftstofftank |
ßà |
Zapfsäule |
Die Kardinalitäts-Beschränkungen lassen sich erst
recht nicht durchsetzen. Es kann also durch die Tabellen-Typbeschreibungen
der beiden Koppel-Tabellen „Personal-Zuordnung“ bzw. „Rohrverbindung“ nicht
gesichert werden, dass
Ø ein Mitarbeiter mindestens einer und höchstens
3 Tankstellen zugeordnet ist,
Ø eine Zapfsäule mit genau 4 Kraftstofftanks verbunden
ist.
·
Im
Primärschlüssel der Tabelle „Rohrverbindung“ müsste der Primärschlüssel der
Tankstelle PLZ+Straße/Hausnr
eigentlich zweimal auftauchen:
a)
im
Verweis auf die Zapfsäule, die über die Tankstelle identifiziert wird:
ÝPLZ+Straße/Hausnr+Säulen-NrÝ
b)
im
Verweis auf den Kraftstofftank, der ebenfalls über die Tankstelle identifiziert
wird:
ÝPLZ+Straße/Hausnr+Tank-NrÝ.
Da
jedoch die Zapfsäule und der Kraftstofftank sicherlich zur selben Tankstelle
gehören, muss deren Primärschlüssel nicht doppelt aufgeführt werden. Er wurde
deshalb beim Verweis auf den Kraftstofftank in eckige Klammern gesetzt:
Ý [PLZ+Straße/Hausnr+] Tank-NrÝ
Als
zusätzliches Attribut wird lediglich die Tank-Nr
aufgenommen. Diese bildet gemeinsam mit den beiden Attributen PLZ+Straße/Hausnr aus dem Verweis auf die Zapfsäule den
Verweis auf den Kraftstofftank.
·
Der CM:CN‑Rekursiv-Beziehungstyp
des Objekttyps „Mitarbeiter“ wird gemäß der Transformationsregel T19 durch die
Koppel-Tabelle „Anleitung“ repräsentiert. Allerdings lässt sich die Kardinalitäts-Beschränkung
nicht darstellen. Es kann also durch die Typbeschreibung der Koppel-Tabelle
nicht durchgesetzt werden, dass ein Chef mindestens 3 Mitarbeiter anleitet.

Bemerkung:
Der PowerDesigner „weiß“ nicht, wie oft die
Optionalität einer Beziehungstyp-Richtung realisiert wird. Er kann deshalb bei
der Repräsentation des C:N-Beziehungstyps zwischen den Objekttypen
„Fahrzeug“ und „Tankvorgang“, der als C:CN-Beziehungstyp dargestellt werden
muss, keine Entscheidung für eine der beiden Transformationsregeln T10 (selten
realisierte Optionalität) und T11 (häufig realisierte Optionalität)
treffen: Er repräsentiert den C:CN-Beziehungstyp immer gemäß der Transformationsregel T10. Deshalb wurde im „physischen“
Datenmodell in die Tabelle „Tankvorgang“ ein nicht-eingabepflichtiger
Verweis auf das „Fahrzeug“ aufgenommen. Das führt jedoch dazu, dass der Fremdschlüssel
ÝPol.
KennzeichenÝ extrem häufig mit der NULL-Marke belegt wird:
„automatisierte“
Transformation:
Tankvorgang (ÝPLZ+Straße/Hausnr+Säulen-NrÝ+Zeitpunkt,ÝPol.
KennzeichenÝ,
ÝKraftstoff-BezÝ,Menge,Tankpreis)
Wir haben
dagegen beim Aufstellen der Tabellen-Typbeschreibungen – bei der
Transformation des konzeptionellen Datenmodells in das logische Datenschema
„von Hand“ – den C:N-Beziehungstyp zwischen den Objekttypen „Fahrzeug“ und
„Tankvorgang“ gemäß der Transformationsregel T11 dargestellt: Wir haben
eine Koppel-Tabelle „Unbezahlter Tankvorgang“ eingeführt, durch die die
wenigen „finanzierungsfreien“ Tankvorgänge mit dem jeweiligen Fahrzeug in
Verbindung gebracht werden:
Transformation
„von Hand“:
Unbezahlter Tankvorgang (ÝPLZ+Straße/Hausnr+Säulen-Nr+ZeitpunktÝ,ÝPol. KennzeichenÝ )
Der Fremdschlüssel ÝPol. KennzeichenÝ ist
eingabepflichtig, sodass keine NULL-Marken auftreten und die unsinnige Speicherplatz-Vergeudung
vermieden wird.
Das Beispiel
zeigt, dass man vor der „Absegnung“ des endgültigen logischen Datenschemas
die „automatisiert“ getroffenen Entscheidungen
unbedingt überprüfen sollte.

[ Home ]