Alexander

Aus ProgrammingWiki

Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Ziel der Datenbank:

Dies ist eine Datenbank zu Speicherung von relevanten Daten in einem Online Rollenspiel.

Ich fand die Idee so eine Datenbank zu erstellen ganz interessant, weil ich auch schon mehrere Online Rollenspiele gespielt hab und wollte eben mal den Grudnstein für so ein Spiel selbst legen.

Pro Spieler fallen in so einem Spiel natürlich sehr viele verschidene Datensätze an, auch zwischen mehreren Spielern entstehen Daten die gespeichert werden wollen. Um für alle diese Daten den Überblick zu behalten ist es von Vorteil ein Datenbank zu erstellen in der alles abgespeichert wird. Dies ermöglicht sowohl den Zugriff als auch die Wartung von Daten.


Die Grundlagen(begriffe):

Datenbasis: Datenmaterial, strukturierte Daten

Datenbankmanagementsystem (DBMS): dient der Sortierung und Verwaltung von Daten(speichern, löschen...); Vorkehrungen zur Datensicherheit/Datenschutz

Datenbank: Datenbasis und Datenbankmanagementsystem (DBMS) in Verbindung

Entität

Eine Entität (Entity) ist ein konkretes, eindeutig identifizierbares,Datenobjekt. In einer Entitymenge werden Entitäten mit gleichen Eigenschaften zusammengefasst. Entitymengen werden durch Substantive angegeben.

Attribut (Eigenschaft)

Attribute beschreiben die Eigenschaften einer Entitymenge(Menge der Objekte).

Relationship (Beziehung)

Eine Beziehung zwischen zwei Entitymengen und somit zwischen den konkreten Entitäten heißt Relationship. Relationships werden durch Verben angegeben. Eigenschaften von Relationships nennt man ebenfalls Attribute.

Beziehungen im ER-Modell (Kardinalitäten):

1:1-Beziehung(Eineindeutig): Jeder Entität der Entitymenge A wird genau eine Entität der Entitymenge B zugeordnet und umgekehrt.

1:n-Beziehung(Eindeutig): Jeder Entität der Entitymenge A können mehrere Entitäten der Entitymenge B zugeordnet werden, umgekehrt kann jedoch jeder Entität der Menge B nur genau eine Entität der Menge A zugeordnet werden.

m:n-Beziehung(Mehrdeutig): Jeder Entität der Entitymenge A können mehrere Entitäten der Entitymenge B zugeordnet werden und umgekehrt.

Schlüssel:

Ein Schlüssel setzt sich aus einer (minimalen) Menge von Attributen einer Entität zusammen und dient zu ihrer eindeutigen Identifikation.

Primärschlüssel: Das Relationenmodell fordert, dass jede Tabelle ein Attribut (oder eine Attributkombination) enthält, über das jeder Datensatz eindeutig identifiziert werden kann.

Normalformen (ENF, ZNF, DNF):

ENF - Erste Normalform: jeder Spalte wird nur eine Information zugeordnet

ZNF - Zweite Normalform: simultane Aufteilung der Entitäten und Entitymengen in Tabellen

DNF - Dritte Normalform: kein Feld darf von einem Nicht-Schlüssel-Feld abhängig sein, Abhängigkeit nur von einem Schlüsselfeld

Transformationsregeln

Regel 1: Jede Entitymenge, die im ER-Modell enthalten ist, wird im relationalen Modell zu einer eigenständigen Tabelle. - Tabellenname (Primärschlüssel, Attribut_1,…,Attribut_n)

Regel 2: Zwei Entitymengen der Kardinalität 1:1 werden zu einer Tabelle zusammengefasst.

Regel 3: Wenn zwei Entitymengen durch einen Beziehungstyp der Kardinalität 1:n charakterisiert sind, wird der Primärschlüssel der ersten Entitymenge (1:n) als Fremdschlüssel der zweiten Entitymenge (1:n) eingefügt. - Tabellenname (Primärschlüssel, Attribut_1,…,Attribut_n, Fremdschlüssel)

Regel 4: Wenn zwei Entitymengen durch einen Beziehungstyp der Kardinalität n:m charakterisiert sind, entsteht eine neue Tabelle. Diese Tabelle enthält beide Primärschlüssel der jeweiligen Entitymengen als Fremdschlüssel. Falls die Beziehung durch weitere Attribute charakterisiert ist, werden diese mit in die Tabellen aufgenommen. - Tabellenname (Primärschlüssel, Attribut_1,…,Attribut_n, Fremdschlüssel_1, Fremdschlüssel_2)

Das ERM:

DB Beleg Final3.png


Das RM:

Primärschlüssel = „Fett“ Sekundärschlüssel/Fremdschlüssel = „kursiv

Player(U_ID, Username, Level, Gold, Geschlecht, Reittier_Resttage, R_ID, G_ID)

Gilde(G_ID, Gildenname, Gildenlevel)

Item(I_ID, Itemname)

Player_Item(U_ID, I_ID, Anzahl)

Effekt(E_ID, Effektname, Schaden)

Item_Effekt(I_ID, E_ID)

Zauber(Z_ID, Zaubername, Zaubertyp, Zauberschaden)

Player_Zauber(U_ID, Z_ID)

Reittier(R_ID, Tiername, Geschwindigkeit)

Tabellen:



Abfragen:

Alle Tabellen anzeigen

Alle Mitglieder einer Gilde herausfinden(hier Gilde "3"= "Sebastianos")

Diese Abfrage ermittelt alle Items eines Spielers(hier vom Spieler Alexander)

Diese Abfrage ermittelt alles User die einen bestimmten Zauber beherrschen(hier "Geißel der Unterwelt")

Diese Abfrage ermittelt alle Spieler die ein bestimmtes Item besitzen(hier "Morgenstern")

Diese Abfrage ermittelt alle Waffen die einen Schaden von mehr als 25 machen

Diese Abfrage ermittelt alle Spieler die doch ein Reittier besitzen und dies 4 oder mehr Tage

Diese Abfrage zählt alle Spieler in einer Gilde(hier Legends)

Diese Abfrage ermittelt wieviele Items ein Spieler insgesamt besitzt

Die Abfragen sind meiner Meinung nach, unterschiedlicher Schwierigkeit. Allerdings sind die Schwierigkeiten NICHT geordnet d.h durcheinander.

Arbeitsnachweis:

27.01.14 Beginn der Arbeit am DB Beleg - Idee überlegt, ERM gestaltet, RM erstellt

03.02.14 weiter am DB Beleg gearbeitet - Tabellen erstellt, Tabellen mit Datensätzen gefüllt

09.02.14 kleine Korrekturen an allem - Grundlagen erklärt; RM, Tabellen, Datensäzte erweitert/verändert

10.02.14 Abfragen erstellt

13.02.14 Restliche Abfragen erstellt, Datensätze hinzugefügt

Persönliche Werkzeuge