Schlagwort-Archiv MySQL Tutorial

MySQL Tutorial (1): ER-Modell, ERM, Entity-Relationship-Modell

Es ist sinnvoll, dass man einen Datenbankentwurf erstellt bevor man dann im phpMyAdmin die Datenbank, Tabellen, Spalten und Datensätze anlegt. Nur so und nicht anderes, kann man eine Datenbank erstellen, welche dann optimal per Entitäten und Attributen entsprechend optimiert (Normalisierung) ist.

Für einen Datenbankentwurf greift man in der Regel auf das ER-Modell, ERM, Entity-Relationship-Modell zurück. Um das ER-Modell nutzen zu können muß man ein paar Grundlagen kennen, denn nur so, kann man das Entity-Relationship-Modell voll ausschöpfen:

1.) Entitäten

Eine Entität muß im Modell des Datenbankentwurfes ein eigenständiges Objekt, Einheit, oder Explemplar sein, welches dann eindeutig gekennzeichnet werden muß.

Beisspiel:

* Sache -> Kann ein Produkt sein, z.B. ein PKW
* Person, Unternehmen, Institution
* Ereignis -> z.B. Termine, Veranstaltungen
* Dokument

2.) Entitätstyp

Wenn man Entitäten mit gleichen Attributen zusammenfasst, dann spricht man vom Entitätstyp.
Wichtig ist zu wissen, dass Entitäten welche abhängig sind, von tatsächlich existierenden Entitäten, man in diesem Fall von einer Vater-Entität spricht. Zu definieren sind abhängige Entitäten dann schon am Schlüssel, da die abhängigen Entitäten nämlich durch die Vater-Entität den denselben Schlüssel erben. Und von höhster Relevanz ist zu wissen, dass abhängige Entitäten automatisch zu löschen sind, wenn die Vater-Entität gelöscht wird. Beispiel wäre in diesem Fall, dass bei Positionen einer Bestellung, sofern dann eine Stornierung der Bestellung erfolgt, dann müssen die Positionen natürlich komplett, der jeweiligen Bestellung zugeordent, gelöscht werden.

3.) Attribute

Eigenschaften der jeweiligen Entitäten werden als Attribute im ER-Modell bezeichnet. Attribute haben natürlich immer alle einen Namen (Bezeichner). Allerdings ist zu berücksichtigen, dass sich die Bezeichnung immer nur auf dem Anwendungsbereich, der jeweiligen Attribute bezieht, da nämlich das ER-Modell nur einen Teil der Realität vor gibt. Beisspiel: Es unterscheiden sich nämlich die Attribute von Kunden einer Bäckerei, mit den gleichen Personen als Mitarbeiter der Bäckerei! 😉

4.) Beziehungen -> Beziehungstyp

Die Entitäten können untereinander in Beziehung gesetzt werden, damit kann das Verhalten der Entitäten besser definiert werden. Beispiel: Shop verkauft Produkte, oder die Hersteller bieten verschiedene Artikel an usw.

Es gibt drei relevanten Arten von Beziehungstyp für Entitäten im ER-Model und diese lauten wie folgend:

* 1:1 Beziehung

Diese Beziehung wird somit als eindeutig zwischen zwei Tabellen angegeben. Jeder Datensatz von der einen Tabelle besitzt genau eine Verbindung zum anderen Datensatz der anderen Tabellen. Dieses geht natürlich auch nur in einer Tabelle zu handhaben.

* 1:n Beziehung

Hier sind einem Datensatz der einen Tabelle dann mehrere Datensätze von einer anderen Tabelle zugordent. Beisspiel, ein Autohersteller bietet viele PKW-Modelle = Artikel an, aber: Alle Artikel sind NUR den einem Hersteller zugeordent. Dürfte soweit klar sein? 😉

* n:m Beziehung

Ein Datensatz der einen Tabelle kann mehreren Datensätze der anderen Tabelle zugeordnet sein und umgekehrt. Beispiel: Ein Student besucht eine Vorlesung, ein Student besucht mehrere Vorlesungen und eine Vorlesung kann natürlich und so ist es auch real, dann von mehreren Student besucht werden.

Wichtig zu wissen wäre zum Schluss noch, dass die Notationen per UML, also genauer gesagt die UML-Notationen gesetzt werden müssen, bevor es dann anschliesend zur Normalisierung der Datenbank weiter geht und zum setzen des Primärschlüssel kommt.

Die Notationen festigen, beziehungsweise kennzeichnen die Verbindungen zwischen den Tabellen in einer Datenbank. Folgende UML-Notationen werden verwendet:

a) 0..1 bedeutet: optional eindeutig
b) 0..* bedeutet: optional mehrdeutig
c) 1..1 bedeutet: obligatorisch eindeutig
d) 1..* bedeutet: obligatorisch mehrdeutig

Zum MySQL Tutorial (2) -> (2)

oder zurück zum MySQL Tutorial Vorwort und Installation -> (Vortwort und Installation)