Aufgabe 4

Werbung
Eine Tankstellenkette
4
4.1
Eine Tankstellenkette
Beschreibung des Gegenstandsbereichs
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) und hat eine Fläche von 3 700
m2. Sie hat 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. Zu jedem Großhändler
wird über den 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,029 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 8 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. Notfalls kann dem Tankvorgang auch das betankte
Fahrzeug zugeordnet werden - jedoch nur dann, wenn das Bezahlen
1
Eine Tankstellenkette
„vergessen“ wurde. So wurde beispielsweise in der betrachteten Tankstelle am 11.11.1001 um 11.11 Uhr an der Zapfsäule 11 ein blauer
VW Golf mit dem polizeilichen Kennzeichen „GAUN ER 007“
betankt, ohne dass bezahlt wurde. Das ist besonders ärgerlich, weil
dieses Fahrzeug schon zum dritten Mal einem Tankvorgang
zugeordnet wurde.
Weiterhin ist zu beachten:
2

Die Tankstellen der Kette werden nur in Orten und nicht auf
freier Strecke eingerichtet.

Eine neu eingerichtete Tankstelle hat noch keine 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 innerhalb der
Kette 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 neu installierten Zapfsäule wurde noch kein
Tankvorgang zugeordnet.

Es werden nur solche Fahrzeuge gespeichert, die wenigstens
einem „finanzierungsfreien“ Tankvorgang zugeordnet wurden.
Eine Tankstellenkette
4.2
Konzeptionelles Datenmodell
Ort
Ortsname
Kreis
Einwohnerzahl
[3,*] leitet an
verfügt über
liegt in
Großhändler
Firmenname
Hauptsitz
wird angeleitet von
Mitarbeiter
Personal-Nr
Name
Adresse
[1,3] ist zugeordnet
Tankstelle
PLZ
Straße/Hausnr
Fläche
arbeitet zusammen mit
hat
[2,*] verfügt über
bezieht Kraftstoff von
gehört zu
[4,*] hat
Kraftstoff
Kraftstoff-Bez
Oktanzahl
Aktueller Preis
ist in
gehört zu
[4,4] ist verbunden mit
enthält
wird verwendet für
erfolgt mit
Kraftstofftank
Tank-Nr
Fassungsvermögen
Füllstand
Tankvorgang
Zeitpunkt
Menge
Tankpreis
Zapfsäule
Säulen-Nr
versorgt
wird genutzt für
erfolgt an
erfolgt für
wird zugeordnet zu
Fahrzeug
Pol. Kennzeichen
Typ
Farbe
3
Eine Tankstellenkette
Bemerkungen:
4

Da nicht gesichert ist, dass es in einem Postleitzahl-Bezirk nur
eine einzige Tankstelle gibt, wird der Objekttyp „Tankstelle“
durch die Kombination der Eigenschaften „PLZ“ und
„Straße/Hausnr“ identifiziert.

Die Kraftstofftanks und die Zapfsäulen werden innerhalb einer
Tankstelle jeweils durchnummeriert. Deshalb erfolgt die
Identifizierung des Objekttyps
„Kraftstofftank“ (bzw.
„Zapfsäule“) durch die Kombination 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“
bedeutet keine Redundanz. Der aktuelle Preis des Kraftstoffs
ändert sich nämlich häufig, so dass sich aus der Kenntnis des
Kraftstoffs und der getankten Menge später nicht mehr der
Tankpreis 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.
Eine Tankstellenkette
4.3
Transformation in das logische Datenschema
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
PLZ+Straße/Hausnr
PLZ+Straße/Hausnr
Tankstelle
Tankstelle
PLZ+Straße/Hausnr+Säulen-Nr
Zapfsäule
wird
Primärschlüssel
aufgenomme
von
n in
Kraftstofftank

Zapfsäule


Tankvorgang
5
Eine Tankstellenkette
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- RekursivBeziehungstyps von „Mitarbeiter“ gemäß der Transformationsregel
T19. Die veränderten 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)
6
Eine Tankstellenkette
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 nun 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
Tankvorgang zugeordnet wird.
Für den C:CN-Beziehungstyp stehen
Transformationsregeln zur Verfügung:
wiederum
zwei
7
Eine Tankstellenkette
a) Transformationsregel T10 (den meisten Tankvorgängen
wird ein Fahrzeug zugeordnet, d.h. fast alle Kunden der
Tankstelle „vergessen“ das Bezahlen),
b) Transformationsregel T11 (den meisten Tankvorgängen
wird kein Fahrzeug zugeordnet, weil die Kunden ordnungsgemäß bezahlt haben).
Im Interesse der Tankstelle wollen wir annehmen, dass der Fall b)
vorliegt. Deshalb wurde 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, s. Abschnitt 4.4!).

Für den C:CN-Beziehungstyp zwischen „Großhändler“ und
„Tankstelle“ stehen wiederum zwei 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 lediglich 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 Typbeschreibungen der
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.
8
Eine Tankstellenkette

In 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 Zapfsäule und Kraftstofftank zur selben Tankstelle
gehören, muss deren Primärschlüssel natürlich 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 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.
9
Eine Tankstellenkette
„Physisches Datenmodell“ des PowerDesigner 9.0
4.4
Ort
Ortsname
Kreis
Einwohnerzahl
Anleitung
Personal-Nr
Chef-Personal-Nr
Mitarbeiter
Personal-Nr
Name
Adresse
Personal-Nr = Personal-Nr
Personal-Nr = Chef-Personal-Nr
PLZ = PLZ
Straße/Hausnr = Straße/Hausnr
Ortsname = Ortsname
Kreis = Kreis
Großhändler
Firmenname
Hauptsitz
Tankstelle
PLZ
Straße/Hausnr
Firmenname
Ortsname
Kreis
Fläche
Personal-Nr = Personal-Nr
Personal-Zuordnung
PLZ
Straße/Hausnr
Personal-Nr
PLZ = PLZ
Straße/Hausnr = Straße/Hausnr
Zapfsäule
PLZ
Straße/Hausnr
Säulen-Nr
Firmenname = Firmenname
PLZ = PLZ
Straße/Hausnr = Straße/Hausnr
Kraftstofftank
PLZ
Straße/Hausnr
Tank-Nr
Kraftstoff-Bez
Fassungsvermögen
Füllstand
Rohrverbindung
PLZ = PLZ
PLZ
Straße/Hausnr = Straße/Hausnr Straße/Hausnr
Tank-Nr = Tank-Nr
Säulen-Nr
Tank-Nr
Kraftstoff-Bez = Kraftstoff-Bez
Kraftstoff-Bez = Kraftstoff-Bez
Kraftstoff
Kraftstoff-Bez
Oktanzahl
Aktueller Preis
PLZ = PLZ
Straße/Hausnr = Straße/Hausnr
Säulen-Nr = Säulen-Nr
PLZ = PLZ
Straße/Hausnr = Straße/Hausnr
Säulen-Nr = Säulen-Nr
Tankvorgang
PLZ
Straße/Hausnr
Säulen-Nr
Zeitpunkt
Pol. Kennzeichen
Kraftstoff-Bez
Menge
Tankpreis
Fahrzeug
Pol. Kennzeichen
Typ
Farbe
Pol. Kennzeichen = Pol. Kennzeichen
10
Eine Tankstellenkette
Bemerkung:
Dem PowerDesigner stehen keine Angaben über die Häufigkeit zur
Verfügung, mit der die Optionalität einer Beziehungstyp-Richtung
realisiert wird. Er kann deshalb bei der Transformation des C:NBeziehungstyps zwischen „Fahrzeug“ und „Tankvorgang“, der ja als
C:CN-Beziehungstyp repräsentiert werden muss, keine Auswahl unter
den Transformationsregeln T10 (selten realisierte Optionalität) und
T11 (häufig realisierte Optionalität) treffen. Er repräsentiert einen
C:CN-Beziehungstyp immer nach der Transformationsregel T10.
Deshalb wurde – entgegen unserer Darstellung im Rahmen der
Tabellen-Typbeschreibungen (Abschnitt 4.3) - im „physischen“
Datenmodell in die Tabelle „Tankvorgang“ ein nichteingabepflichtiger Verweis auf das „Fahrzeug“ aufgenommen
(deshalb der Kursivdruck!):
* Tankvorgang(PLZ+Straße/Hausnr+Säulen-Nr+Zeitpunkt,
Pol. Kennzeichen,Kraftstoff-Bez,Menge,Tankpreis)
11
Eine Tankstellenkette
4.5
12
Datenbank-Struktur für Access 2000
Herunterladen