Ella
Aus ProgrammingWiki
Vom ERM über das Relationshipmodell zur Datenbank
Verbildlichung am Aufbau eines Reitvereins
Inhaltsverzeichnis |
Welche Vorlage bietet ein Reitverein für eine Datenbank?
Ein größerer Reitverein setzt sich aus vielen verschiedenen Komponenten zusammen. Er ist also zum einen sehr vielfältig aber vor allem ist auch jeder Verein für sich einmalig. Diese Komplexität und Individualität bietet sich perfekt dafür an, um den Sachverhalt in ein strukturiertes ERM, RM und später in eine Datenbank zu transformieren.
> Was nutzt eine Datenbank einem Reitverein?
Das Erstellen einer solchen Datenbank kann auch durchaus für einen bestehenden Verein interessant und nützlich sein. Wie bereits angedeutet, könnten große Datenmengen übersichtlich dargestellt werden. So kann der Vorstand schnell darauf zurückgreifen. Eine effiziente, dauerhafte und fehlerfreie Speicherung von Daten kann gewährleistet werden. Hat man alle Informationen an einem Ort können somit auch Veränderungen, wenn z.B. ein Mitglied den Verein verlassen hat, leicht notiert werden. Eine bedarfsgerechte Bereitstellung von spezifischen Daten ist also durchaus von Nutzen.
Modellierung in einem ERM
Erläuterung aller vorhandenen Strukturen
Mein Entity-Relationship-Modell setzt sich aus mehreren Grundstrukturen zusammen. Zum einen gibt es die Entitäten Vorstand, Trainer und Vereinsmitglieder. Sie werden ergänzt durch variierende Attribute wie Vorname, Geburtsjahr oder Vereinszugehörigkeit. Zwischen den Entitäten herrscht eine 1:n Kardinalität. (= Ein Vorstand bildet mehrere Trainer aus. Ein Trainer wird von einem Vorstand ausgebildet. Und: Ein Trainer unterrichtet mehrere Vereinsmitglieder. Ein Vereinsmitglied wird von einem Trainer unterrichtet.)
Die drei Normalformen wurden folgender Maßnahmen gewährleistet:
1. Normalform: Jedes Attribut muss in atomarer Form vorliegen. Hierfür nutzte ich z.B. die expliziten Attribute ‚Vor- und Nachname‘ statt der Verallgemeinerung ‚Name‘.
2. Normalform: Es muss ein Schlüsselattribut geben. Diese Bedingung wird durch die speziellen Attribute ‚Vorstandsnummer‘, ‚Trainernummer‘ und ‚Vereinsmitgliedsnummer‘ garantiert, wobei sich jede Nummer immer eindeutig einer Person zuordnen lässt.
3. Normalform: Jedes andere Attribut des Objektes muss vom Schlüsselattribut abhängig sein. Z.B.: Verändert sich die Trainernummer, dann verändern sich auch die Attribute, da eine andere Person betrachtet wird.
Transformation in ein Relationenmodell
Erstellen der Datenbank
Erstellen von Abfragen
Alle Vereinsmitglieder anzeigen lassen
Alle Trainer beim Vorstand Sonja anzeigen lassen
Alle Vereinsmitglieder mit dem Lieblingspferd PandaPoo anzeigen lassen
Kritische Reflexion
Welche Probleme könnten in Zukunft mit dem Code auftreten?
Die ersten Probleme entstehen, wenn sich die Beziehung zwischen dem Vorstand und den Trainern oder den Trainern und den Vereinsmitgliedern ändert. Wenn also aus den 1 zu n Beziehungen n zu m Beziehungen werden. Sprich, wenn ein Trainer weiterhin mehrere Vereinsmitglieder trainiert, aber die Vereinsmitglieder nun auch mehrere Trainer haben, welche sie unterrichten. Dann fehlt eine jeweils dritte Tabelle, die die Verbindungen herstellt, wodurch ein solcher Sachverhalt nicht abgefragt werden könnte. Wenn man nur die Abfragen betrachtet, dann könnte es außerdem problematisch werden, wenn es z.B. zwei 'Vorständler' gibt die Sonja heißen. Es wird dann kompliziert, wenn man alle Trainer ausgegeben bekommen möchte, die Sonja als Vorstand haben, von welcher es zwei gibt. Man müsste die gesuchte Sonja dann direkt mit ihrer Vorstandsnummer suchen.