Das ATOS-Magazin 2/99
ATOS Programmierpraxis
Moderne Zeiten

# Möglichkeiten der Optimierung

Wenn man dem Vereins-Speicherobjekt ein Attribut hinzufügt, nämlich eine Liste bestehend aus Verweisen auf seine Spielerverträge, dann hat man bei Kenntnis des Vereins sofort Zugriff auf seine Verträge und damit auf seine Spieler. Das Suchen entfällt. Man kann sogar statt der Verweise auf die Spielerverträge auch die Verträge direkt als Attribute des Vereins-Speicherobjektes eintragen, wodurch die Verweise gespart würden.

Umgekehrt kann man bei jedem Spieler einen Verweis auf seinen Spielervertrag sichern. Auf diese Weise hat man nun auch ausgehend von einem Spieler unmittelbaren Zugriff auf seinen Vertrag und damit auch auf seinen Verein.

Es gibt noch weitere Optimierungsmöglichkeiten: Statt beim Fußballspieler einen Verweis auf seinen Vertrag abzulegen, kann man auch einen Verweis auf seinen Verein ablegen. So findet man den Verein eines Spielers etwas schneller, da einem Verweis weniger gefolgt werden muß. Sucht man nun aber den Vertrag des Spielers, so muß man jetzt alle Verträge seines Vereins nach dem passenden durchsuchen. Nun läßt sich auch das Attribut "Vertragspartner Verein" aus dem Spielervertrag herausnehmen, falls man nicht darauf angewiesen ist, ausgehend von einem Vertrag auf den zugehörigen Verein zu schließen.

Sie sehen, daß man sehr viele Möglichkeiten hat, Relationsspeicher bezüglich Speicherverbrauch und Zeitverbrauch beim Suchen zu optimieren. Nicht alle Realisationen sind dabei leicht verständlich. Für welche Realisation man sich entscheidet, ist von Fall zu Fall zu entscheiden. Aber keine Angst! Es gestaltet sich nämlich auch nicht sonderlich schwer, nachträglich die gewählte Realisation zu ändern, oder auch verschiedene Varianten durchzuprobieren. Sie sollten also anfangs mit den leichten Varianten starten und lieber etwas mehr Speicher verbrauchen - optimieren läßt sich später ja immer noch.

Für unseren Mini-Fußballmanager entscheiden wir uns für die Variante, daß wir die Vereins-Speicherobjekte um ein Attribut erweitern, welches ein Array mit den Fußballspieler-Speicherobjekten enthält, die die Daten der Spieler des jeweiligen Vereines aufnehmen:

- Verein:
  - Name (als Zeichenkette)
  - Spieler des Vereins (Array aus 11 Fußballspielern)

Das hat den Vorteil, daß wir nun relativ "klein" in die Benutzung der OT/OB-Lib einsteigen können und noch keine expliziten Verweise benötigen.

Unsere kleine Fußballwelt besteht damit nur aus Vereinen, und diese wiederum aus Spielern.

Zum Abschluß dieses Kursteils folgt hier noch einmal als Ergebnis der Entwurf unseres Fußballwelt-Speichers:

- Fußballspieler:
  - Name (als Zeichenkette)
  - Spielerstärke als Torwart (als Zahl von 0-100)
  - Spielerstärke als Abwehrspieler (als Zahl von 0-100)
  - Spielerstärke als Mittelfeldspieler (als Zahl von 0-100)
  - Spielerstärke als Stürmer (als Zahl von 0-100)
- Verein:
  - Name (als Zeichenkette)
  - Spieler des Vereins (Array aus 11 Fußballspielern)

Ausblick