Das ATOS-Magazin 2/99
ATOS Programmierpraxis
Moderne Zeiten

# Beschreibung der Fußballwelt

Um ein Speicherobjekt nach außen hin zu beschreiben, muß man angeben, welchem Wertebereich das Objekt genügt. Bei den Standard-Variablentypen, wie Sie sie aus GFA-Basic kennen, ist das sehr einfach. Die Wertebereiche der Typen `BOOLEAN`, `BYTE`, `WORD`, `INT`, `FLOAT` und `STRING` sind schnell erläutert. Auch "Array" ist ein Typ, der vom Basic zur Verfügung gestellt wird, den man recht einfach verstehen kann, da es keine komplexe, sondern eine recht triviale Form eines Wertebereichs ist.

Der Speicher zur Aufnahme von Daten über Videokassetten aus dem letzten Kursteil war ebenso recht einfach zu erfassen. Es handelte sich um ein Array aus "Kassetten", von denen jede einzelne einige Attribute hatte: Kassettentitel, Spielzeit und eine Filmliste. Unsere Fußballwelt scheint aber bereits etwas komplexer zu werden, gibt es doch immerhin Ligen, Vereine, Fußballspieler, vielleicht auch eine Transferliste usw. Über all diese Objekte müssen Informationen im Spielstandspeicher festgehalten werden.

### ER-Diagramme

Um auch bei komplexen Strukturen den Überblick zu behalten, hat man einen Plantyp entwickelt, mit dem sich Strukturen grafisch veranschaulichen lassen: ER-Diagramme. "ER-Diagramm" steht für Entity-Relation-Diagramm, was auf Deutsch so viel heißt wie "Menge-Beziehung-Diagramm". Die Diagramme sind die Fortführung dessen, was man aus der Grundschule bereits kennt, wo man Mengen mit Ovalen symbolisierte.

Zum Entwerfen von Speicherobjekten für komplexere Strukturen eignen sich diese Pläne hervorragend, da man später sogar recht einfach den Sourcecode regelrecht von den Plänen abtippen kann. Man ermittelt zuvor über ein Brainstorming die Typen der Objekte, über die Informationen im Speicher abgelegt werden sollen. Für unseren Fußballmanager kommen wir schnell auf vielleicht folgende Klassifikation:

Fußballspieler: | Das sind die kleinen virtuellen Männchen, über die wir uns ihre Spielstärke, ihren Transferwert, ihr Gehalt usw. merken müssen.
Vereine: | Die Vereine verfügen jeweils über ein Repertoire an Spielern, haben ein Vereinskonto, ein Stadion mit bestimmter Größe usw.
Ligen: | Die Ligen werden aus Vereinen gebildet, die in bestimmter Reihenfolge gegeneinander antreten. Dabei gilt es stets, den Tabellenstand zu merken. Am Ende einer Saison wechseln einige Mannschaften durch Auf- und Abstieg die Liga.
Manager: | Auch zu den Spielern, die vor dem Monitor sitzen, müssen wir uns natürlich Informationen merken: Wie heißen sie? Welchen Verein managen sie? Wieviele Punkte haben sie bereits erreicht?
Transferliste: | Damit auch ein wenig Dynamik ins Spiel kommt, ist eine Transferliste sehr interessant. Vereine können Spieler mit einem Mindestgebot in die Liste eintragen, andere Vereine können Angebote machen, woraufhin der meistbietende Verein den Spieler bekommt. Es bietet sich also an, zwischen Angeboten (also Einträgen in der Liste) und Nachfragen (also Angebote für Spieler auf der Liste) zu unterscheiden.

Nachdem man sich die Gedanken auf diese Weise ein wenig geordnet hat, zeichnet man sich Mengenkreise für die einzelnen Klassen. In unserem Beispiel wäre das jeweils ein Kreis für die Fußballspieler, die Vereine, die Ligen, die Manager, die Transferlisteneinträge und die Transferangebote. Anschließend gilt es dann festzuhalten, wie die Objekte aus den einzelnen Klassen zueinander in Beziehung stehen. Bevor erklärt wird, wie man diese Dinge festhält, sollen Sie nun bereits einen Blick auf das fertige ER-Diagramm für unserere Fußballwelt werfen:

Die einzelnen Mengenkreise sind beschriftet mit dem Typbegriff der Objekte, die zu der jeweiligen Menge gehören. Die Menge der Vereine ist beispielsweise mit dem Begriff "Verein" beschriftet.

### Darstellung der Attribute in ER-Diagrammen

Man kann nun unterstützend bereits beliebige Attribute der Objekte innerhalb der Mengenkreise aufzählen, so wie das im Strukturbild bereits mehrfach gemacht wurde. Zu jedem Manager müssen Name und Punktezahl gespeichert werden, Fußballspieler haben Namen und Spielstärken, für jede Liga gilt es sogar, sich Informationen einer etwas komplexeren Struktur zu merken: Wie lauten die Spielpaarungen? Welcher Spieltag ist der aktuelle? Wie waren die Ergebnisse der bereits ausgetragenen Spiele? Diese Dinge sind in diesem groben Überblick noch nicht genauer aufgeschlüsselt.

### Relationen (Beziehungen) in ER-Diagrammen

Dort jedoch, wo es um Fragen geht, die sich nicht auf Objekte eines einzelnen Typs beziehen, sondern wo mehrere Typen in Beziehung gebracht werden, geht man zur Darstellung andere Wege. So gehört ja jeder Fußballspieler beispielsweise zu einem Verein. Nun könnte man in die Attributliste der Fußballspieler das Attribut "Verein" eintragen, und sich darin merken, zu welchem Verein der Spieler gehört. Man könnte genauso gut aber in die Attributliste der Vereine das Attribut "Spielerauflistung" eintragen, und dort jeweils die Spieler aufzählen, die zum jeweiligen Verein gehören. Beides ist möglich. Man zeigt aber stattdessen lieber direkt im Bild, daß Fußballspieler und Vereine in Beziehung stehen und zeichnet diese Beziehung ein: als Rechteck, welches durch jeweils eine Linie mit der Menge der Fußballspieler und der Menge der Vereine verbunden ist. Im Bild ist dieses Rechteck mit "Spielerverträge" beschriftet.

Man hat als Form das Rechteck gewählt, weil sich eine solche Relation (Relation = Beziehung) jeweils als Tabelle angeben läßt, und Tabellen ebenfalls rechteckig sind:

Verein \ Spieler | Matthäus | Klinsmann | Kahn
Dortmund |  |  |
Stuttgart |  | X |
München | X |  | X

Diese Tabelle ist eine solche Tabelle, in der Spielerverträge aufgelistet werden. Zu jedem Spieler ist angekreuzt, bei welchem Verein er unter Vertrag steht.

Bevor auf die anderen Relationen im Bild eingegangen wird, sei zunächst noch die Pfeilung erläutert. Mit den Pfeilen wird ausgedrückt, ob jeder Spieler einem Verein angehören muß, oder nicht, oder ob er sogar genau einem Verein angehören muß. Dazu gibt es folgende Pfeilungsmöglichkeiten:

Pfeile in die umgekehrte Richtung sind natürlich ebenfalls möglich. Ihre Bedeutung ist dann entsprechend in die andere Richtung analog.

Dementsprechend sagen die neben den Spielerverträgen eingezeichneten Beziehungen im Strukturbild folgendes aus:

- jeder Manager managt genau einen Verein
- jeder Verein gehört in genau eine Liga
- jeder Transferlisteneintrag gehört zu genau einem Spieler
- ein Spieler kann genau einmal in der Transferliste stehen
- jedes Transferangebot wurde von genau einem Verein gemacht
- jedes Transferangebot bezieht sich auf genau einen Eintrag aus der Transferliste

Das Entwerfen von zum Problem passenden ER-Diagrammen erfordert ein wenig an Übung. Es gibt auch noch einige weitere Symbole, die man in ER-Diagrammen einsetzt, um bestimmte Zusammenhänge anschaulicher darzustellen. Darauf soll aber an dieser Stelle nicht näher eingegangen werden.

Nun bauen wir auf den bisherigen Überlegungen basierend einen Speicher zur Aufnahme der Informationen unserer Fußballwelt.

Der Entwurf des Spielstandspeichers