1. Definition

Die Datenmodellierung ist der Prozess der Darstellung von Informationen und Beziehungen zwischen Daten in einer organisierten Struktur.

Hierbei ist das Modellieren der Daten die Grundlage für die Konstruktion einer Datenbank. Es hilft dabei, komplexe Informationen in leicht verständliche Form zu organisieren.

2. Grundlagen der Datenmodellierung

2.1. Entitäten

Eine Entität ist ein eindeutig definierbares Objekt in der Wirklichkeit.

z.B: Schüler

2.2. Attribute

Attribute beschreiben Merkmale oder Eigenschaften einer Entität.

Beispiel:

für die Entität Schüler lassen sich folgende Attribute bestimmen:

  • Schüler_ID

  • Nachname

  • Vorname

  • usw.

2.3. Beziehungen

Eine Beziehung assoziiert wechselseitig zwei (oder mehrere) Entitäten. Assoziation bedeutet, dass eine Entität eine andere Entität kennt und mit ihr in Wechselwirkung steht

2.3.1. Kardinalität von Beziehungen

Die Kardinalität einer Beziehung gibt an, wie viele Entitäten der einen Entitätsmenge einer beliebigen Entität der anderen Entitätsmenge zugeordnet sein können.

1-1 Beziehung

auch: 1 zu 1 Beziehung

Eine Klasse hat einen Klassenleiter

beziehung 1 1
1-n Beziehung

Eine Klasse hat keinen, einen oder mehrere Schüler

beziehung 1 n

Eine Klasse hat einen oder mehrere Schüler

beziehung 1 n 1
n-m Beziehung

Ein Lehrer unterrichtet in mehreren Klassen. Mehrere Klassen werden von mehreren Lehrern unterrichtet

beziehung n m

Hierbei wird allerdings auf Datenbanklevel eine Assoziationstabelle verwendet:

assoziationstabelle 1
Figure 1. Assoziationstabelle
assoziationstabelle
Figure 2. Assoziationstabelle mögliche UML Darstellung

2.3.2. Parallele Beziehungen

Flug von einem Flughafen zu einem anderen:

parallell

2.3.3. Rekursive Beziehungen

Jeder Manager ist ein Mitarbeiter, aber jeder Mitarbeiter sollte einen Manager haben

recursive

3. Notationen

Es muss immer eine Notation verwendet werden, denn es darf nicht nur ein Stich sein.

3.1. UML

uml notation

3.2. Krähenfuß

krähenfuss img

3.3. M - C Notation

m c

4. Relationales Modell (RM)

relationales modell
Figure 3. UML Modell

department(a_id, name)
employee(svnr, d e p t, name, salary, hiredate)

INFO: Bei "dept" muss die Linie strichliert werden (ohne Leerzeichen)!

5. Wichtige Punkte bei der Datenmodellierung

5.1. Gut durchdachte Datenmodellierung

  • strukturierte Speicherung der Daten

  • Vermeidung von Redundanz

  • Integrität der Daten

  • Flexibilität und Skalierbarkeit

5.2. Die 3 Stadien der Datenmodellierung

5.2.1. Konzeptionelles Modell:

puml konzeptionelles modell

5.2.2. Logisches Modell:

puml logisches modell

5.2.3. Physisches Modell:

Eigentliche Implementierung in der gegebenen Datenbank (Abbildung der Tabellenstruktur wie auf der DB)

Dieses Modell wird verwendet, um Besonderheiten einer Implementierung nachvollziehen zu können. Je besser man diese Versteht, desto weniger Komplikationen können bei der Umsetzung geschehen. (Quelle)

puml physisches modell

6. Normalisierung

Ziele der Normalisierung:

  • Redundanz minimieren

  • Integrität der Daten

  • Verhindert Anomalien

Deswegen ist es wichtig diese im Schlaf zu können. Denn dadurch könne dieses Beispiel einträten:

Frau Maier heiratet und nimmt den Namen ihres Mannes an. Dadurch muss in der Datenbank der Name an mehreren Stellen geändert werden, wenn man sich nicht an die Normalisierungen hält.

Hierbei gibt es mehrere Normalformen:

6.1. Erste Normalform

Tumfart Kurzfasssung

Atomar

Eine Relation befindet sich in erster Normalform, wenn alle Attribute nur einfache Attributwerte aufweisen. ⇒ Alle Attribute sind Atomar

Hierbei muss jedes Attribut in die kleinste mögliche Einheit umgewandelt werden:

Adresse ⇒ Straßenname, Hausnummer, Postleitzahl, Stadt

Bsp:

SchülerNr

Name

Vorname

Klasse

Klassenlehrer

Fach

FachLehrer

Zeit in h

1

Jürgens

Ina

11a

Lempel

Tanz

Reiter

1.5

2

Schmidt

Tom

12a

Breier

Chor

Stütz

3.8

Hierbei nimmt die Redundanz zu, wenn z.B. die Klasse, der Klassenlehrer oder das Fach gleich ist.
Wenn nun sich z.B. der Name des Lehrers ändert, muss dieser in vielen einträgen aktualisiert werden.

6.2. Zweite Normalform

Tumfart Kurzfasssung
nicht Schlüsselattribute nicht funktional

Eine Relation befindet sich in zweiten Normalform, wenn

  1. Diese sich nicht in der 1. Normalform befindet

  2. jedes Nicht-Schlüssel-Attribut vom Primärschlüssel voll funktional abhängig ist.

Schritte zur herstellung der 2. Normalform:

  1. Primärschlüssel der gegebenen Relation festlegen, falls dieser nur aus einem Attribut besteht, so liegt bereits 2. NF vor.

  2. Untersuchung, ob aus Teilschlüsselattributen bereits weitere Attribute folgen. Falls nicht, liegt bereits die 2. NF vor. Falls Abhängigkeiten gefunden werden, dann

  3. Neue Relation bilden, die das Teilschlüsselattribut und alle von diesem abhängigen Nichtschlüsselattribute enthalten. Das Teilschlüsselattribut wird in der neuen Relation der Primärschlüssel.

  4. Löschen der ausgelagerten Nichtschlüsselattribute in der Ausgangsrelation.

  5. Vorgang ab 2. wiederholen, bis alle Nichtschlüsselattribute vom gesamten Schlüssel funktional abhängig sind.

Beispiel:

Aus dem Fach lässt sich bereits eindeutig auf einen Namen dieses schließen.
Aus der Schülernummer lässt sich eindeutig auf Name, Vorname, Klasse und Klassenlehrer schließen.

Somit sind zwei neue Relationsschemas Fach und Schüler zu erzeugen und das verbleibende Schema Fach so zu überarbeiten, dass die Attribute Beschreibung, Name, Vorname, Klasse und Klassenlehrer gelöscht werden

puml normalform 2

6.3. Dritte Normalform

Tumfart Kurzfasssung
nicht Schlüsselattribute nicht funktional

Eine Relation befindet sich in 3. Normalform, wenn:

  • sie in der zweiten Normalform ist und

  • jedes Nichtschlüsselattribute nicht transitiv vom Primärschlüssel abhängig ist, d.h. aus keinem Nichtschlüsselattribut folgt ein anderes Nichtschlüsselattribut.

Regel zum Prüfen der zweiten Bedingung: Wenn aus einem Nichtschlüsselattribut ein anderes Nichtschlüsselattribut folgt, dann liegt keine 3. Normalform vor!

Schrittfolge zur Herstellung der dritten Normalform:

  1. Untersuchung, ob aus Nichtschlüsselattributen andere Nichtschlüsselattribute folgen. Falls nicht, liegt bereits die 3. NF vor. Falls Abhängigkeiten gefunden werden, dann

  2. Neue Relation bilden, die das Nichtschlüsselattribut (wird nun Primärschlüssel der neuen Relation) und die von ihm abhängigen Attribute enthält.

  3. Löschen der ausgelagerten Nichtschlüsselattribute mit Ausnahme des Attributes, das in der neuen Relation Primärschlüssel ist.

  4. Vorgang ab 2. wiederholen, bis keine Abhängigkeiten mehr bestehen

puml normalform 3
Figure 4. 3. Normalform
puml normalform 3 relations
Figure 5. Modell mit Relationen in 3. Normalform

7. Namensvergebung von Entitäten

  • Im Singular

  • keine Abkürzungen

  • Konsistent

  • keine Synonyme

  • keine Homonyme

8. Relationale Datenbanken

  • Oracle DB

  • Microsoft SQL Server

  • PostgresSQL

  • Derby DB

  • Maria DB

  • MySQL

  • SqlLite

9. Lebenszyklus von Entitäten

TODO

10. Fragen von Tumfart

Was passiert, wenn man eine Redundanz hat?

Anomalie

Welche Datenbanken gibt es?
Relational, NoSQL
Gibt es verschiedene Hersteller?

Oracle, SQL Server, Maria DB, MySQL, SQL Light

Relationale Datenbanken

  • Oracle DB

  • Microsoft SQL Server

  • PostgresSQL

  • Derby DB

  • Maria DB

  • MySQL

  • SqlLite

NoSQL Datenbanken

  • Mongo DB

  • Redis

  • Apache Cassandra

  • Neo4j

Welche Notationen gibt es?

MC, UML, Krähenfuß

Wer verwendet die Krähenfuß-Notation?

Oracle

Wie heißt das Tool für die Datenmodellierung?

Data Modeller

Wann löst man eine Aggregationstabelle?

Im ERD (Entity Relationship Diagramm) oder RM (Relationen Modell)

Was macht man im Relationen Modell?

Man definiert die Attribute und die PK (Primary Key) und die FK (Forign Keys)