Lydia
Aus ProgrammingWiki
Mein Datenbankprojekt am Beispielen von verschiedenen Sportvereinen
Inhaltsverzeichnis |
Einleitung
In folgenden Projekt werde ich zu meinem gewählten Thema ein ERM-Modell, ein Relationenmodell und eine dazugehörige Datenbank erstellen. Ebenfalls verschiedene und sinnvolle Abfragen für meine Datenbank entwickeln und zum Schluss noch mein Projekt kritisch reflektieren.
Was ist eine Datenbank?
Im Allgemeinem ist eine Datenbank eine strukturierte Sammlung von Daten, die beispielsweise auf einem Computer strukturiert gespeichert sind. Sie ermöglicht es, Informationen effizient zu speichern, abzurufen und zu verwalten. Datenbanken werden häufig verwendet, um große Mengen von Daten zu organisieren und zu analysieren. Die Datenbank umfasst meist Schlüssel zur Identifizierung von Datensätzen, Datenschemata zur Definition von Tabellenstrukturen und Indexen zur Beschleunigung von Abfragen und Anweisungen.
Hierbei gibt es verschiedene Arten von Datenbanken: 1. ERM (Entity-Relationship-Modell): grafische Darstellung von Strukturen durch Entitäten, Attributen und Relationen 2. RM (Relationales Modell): Datenbankmodell, dass Datensätze in Tabellen zeigt 3. SQL (Structured Query Language): Programmiersprache zur Kommunikation zwischen Datenbanken und zur Verwaltung von Daten
Einführung in mein Thema
Im Jahr 2023 wurden bundesweit etwa 24,2 Millionen Mitglieder in den deutschen Sportvereinen gemeldet. Mit knapp 5,1 Millionen Mitgliedern in Sportvereinen verzeichnete das bevölkerungsreichste Bundesland, Nordrhein-Westfalen die höchste Stellung im Vereinssport. Aber auch in anderen Bundesländern zeigt sich eine immer größer werdende Mitgliederanzahl, beispielsweise stieg es in Sachsen auf 16,6 prozentigen Anteil zur Gesamtbevölkerung und auch Mecklenburg-Vorpommern steigt auch auf ungefähr 15,7 Prozent. Gleichzeitig entdecken immer mehr Vereine die Vorzüge eines jährlichen Trainingslagers.
Begründung meiner Themenwahl
Ich bin selbst in einem Sportverein gemeldet, was für mich selbst ein schöner Ausgleich zum allgemein stressigen Alltag darstellt. Ich kann hier nicht nur meinen Sport mit großer Leidenschaft ausüben, sondern habe auch noch eine Gemeinschaft um mich herum die das selbe tut. Vereine sind meiner Meinung nach heutzutage wichtiger denn je und das nicht nur wegen der Modernisierung der Technik. Hier entsteht ein Gemeinschaftsgefühl, man findet neue Freunde und hat einfach Spaß. Ebenso ist für mich das jährliche Trainingslager ein Highlight. Dort lernt man nicht nur neue Techniken zur Weiterentwicklung, sondern auch seine Mitglieder noch besser kennen. Zum Beispiel bei einem gemeinsamen Frühstück oder bei einem Ausflug am Nachmittag. Ebenfalls ist es eine Abwechselung zu allgemeinen Trainingsangeboten, durch andere Trainer und auch durch einen anderen Ort, der vielleicht weit weg von zu Hause ist. Ein Verein ist für mich nicht nur ein Angebot was man wahrnehmen kann, sondern eine Gemeinschaft die jeder braucht.
Deshalb finde ich es sinnvoll für dieses Thema eine eigene Datenbank zu erstellen. Somit kann jeder schauen welche Sportangebote es in den Vereinen gibt und sieht gleichzeitig ob sie ein Trainingslager anbieten. Somit könnten auch beispielsweise mehrere Vereine gemeinsam in ein Trainingslager fahren. Dadurch wäre es glaube ich einfacher junge und auch alte Leute für den Vereinssport zu begeistern.
Mein ERM
Begründung meines Aufbaus
Meine selbstgewählten Entitäten und Attribute sind so konstruiert: Verein: Diese Entität repräsentiert die Vereine in ganz Deutschland, welche Sportarten anbieten. Die Attribute enthalten einen Primärschlüssel (Vereinsnr), welcher zur eindeutigen Zuordnung dient. Des weiteren wurden Attribute wie Gründungsjahr oder Bundesland gewählt, um wichtige Informationen zu speichern. Hier beispielsweise der Ort des Vereins. Sportart: Diese Entität zeigt die Sportarten, welche von den Vereinen in ganz Deutschland angeboten werden. Ebenfalls enthalten diese Attribute auch einen Primärschlüssel (Sportnr) und ich wählte Attribute wie Hilfsmittel oder ob der Sport ein Teamsport ist. Trainingsgruppe: Diese Entität repräsentiert die Trainingsgruppen, welche verschiedene Sportarten anbieten (haben). Natürlich ist hier auch ein Primärschlüssel in den zugehörigen Attributen zu finden. Die Trainingsnr dient zur eindeutigen Zuordnung, da beispielsweise auch mehrere Gruppen am selben Wochentag trainieren können. Trainingslager: Diese Entität zeigt die Trainingslager, wo die verschiedenen Trainingsgruppen hinfahren. Hier wird ebenfalls ein Primärschlüssel verwendet (Trainingslagernr), dieser dient zur eindeutigen Zuordnung. Da es zum Beispiel auch mehrere Trainingslager in einer Stadt oder in einem Land geben kann. Des weiteren Attribute wie Kosten oder Ferien, um allgemeine Informationen zu speichern.
Begründung meiner Relationen
Meine selbstgewählten Relationen sind so konstruiert: Die Beziehungen zwischen den Entitäten wurden nach meiner Datenbank-Idee entwickelt. Erste Relation: Bei meinem Datenmodell bietet ein Verein mehrere Sportarten an. Und gleichzeitig wird die ein Sportart von mehreren Vereinen angeboten. Somit entsteht eine n:m Beziehung. Zweite Relation: Hier wird gezeigt, dass eine Sportart mehrere Trainingsgruppen hat (in ganz Deutschland) aber eine Trainingsgruppe übt nur eine Sportart aus. Somit entsteht eine 1:n Beziehung. Es können also beim Datensatz aus Tabelle Sportarten mehrere Datensätze aus der Tabelle Trainingsgruppe zugeordnet sein. Umgekehrt kann aber einem Datensatz aus Tabelle Trainingsgruppe nur ein einzelner Datensatz aus Tabelle Sportarten zugeordnet sein. Dies kann man sich wie eine Mutter-Kind-Beziehung vorstellen. Dritte Relation: Gleich sieht es bei der dritten Relation meiner Datenbank aus. Eine Trainingsgruppe fährt in mehrere Trainingslager aber ein Trainingslager wird immer nur von einer Trainingsgruppe belegt. Somit entsteht auch hier eine 1:n Beziehung.
Mein Relationenmodell
Erstellen meiner Datenbank
Erstellen meiner Abfragen
Zeige mir alle eingetragenen Vereine an.
Zeige mir alle eingetragenen Vereine an, die vor 1976 gegründet wurden.
Zeige mir alle eingetragenen Vereine an, die Handball anbieten.
Zeige mir alle Trainingslager in Deutschland oder Österreich an.
Zeige mir alle Trainingslager an, die weniger als 280 Euro kosten und in den Winterferien sind.
Zeige mir alle Trainingsgruppen auf der Müllerwiese an und wo das Mindestalter kleiner gleich 16 ist.
Meine kritische Reflexion
Mein ERM-Modell ist sehr einfach gehalten und wäre noch ausbaufähig, um beispielsweise spezifischere Abfragen zu erstellen. Aus meiner Sicht müsste es noch eine 1:n Beziehung zwischen den Entitäten Sportart und Trainingslager und zwischen Verein und Trainingsgruppe geben. Somit könnte man beispielsweise jedem Trainingslager eine Sportart zuordnen. In meinem Modell müsste man aber erst die zugehörige Trainingsnr abfragen und dann noch die Sportnr der zugehörigen Trainingsgruppe. Dies ist aber aus meiner Sicht für diese Arbeit zu komplex.
Des weiteren wird es schwierig wenn sich die Relationen ändern. Also wenn zum Beispiel eine Trainingsgruppe in mehrere Trainingslager fährt aber auch ein Trainingslager von mehreren Trainingsgruppen besetzt wird. Zusätzlich sollte man bei den Attributen von Trainingsgruppe noch die genaue Adresse und Uhrzeit kommt, damit es nicht zu Verweschlungen kommen kann. Die "Müllerwiese" kann es ja zum Beispiel mehrfach in ganz Deutschland geben. Ebenfalls wird hier nur das Mindestalter angegeben und nicht das Maximalalter, sonst könnte ja jemand mit 50 sich in eine Gruppe ab 10 Jahren eintragen. Somit sollte man beides angeben. Gleichzeitig muss man die Datensätze ändern, wenn sich die Kosten für das Trainingslager ändern oder eine Trainingsgruppe nicht mehr in ein Trainingslager fährt und jetzt vielleicht ein anderes bevorzugt.
Manchmal sind auch die Primärschlüssel mit zu vielen Ziffern unübersichtlich. Aber es gibt nun Mal viele Sportarten und Vereine in ganz Deutschland.
Trotzdem ist es sehr übersichtlich und einfach dargestellt und ich habe vor allem das Thema in den Vordergrund gerückt. So eine Datenbank wäre wahrscheinlich sehr hilfreich im deutschen Vereinssport, damit man sich im allgemeinem besser informieren kann.

