Datenbanken Einstieg

Um Daten längerfristig zu speichern und sie gleichzeitig auch einfach zugänglich zu machen, nutzt man Datenbanken. Grundsätzlich kann man sich Datenbanken wie Tabellen vorstellen.

Begriffe

Begriffe-Datenbank Quelle: moodle

Tabellenname

Der Tabellenname gibt den Sinn der Datenbank an. Meist beschreibt er den Inhalt.

Schema

Ein Schema legt fest, welche Daten in einer Tabellle enthalten sind.

Eine andere Schreibweise für ein Schema sieht wie folgt aus: Buch(ISBN, Titel, Autor, Preis). Im späteren Verlauf dieses Artikels wird diese Schreibweise noch erweitert.

Attribut

Jedes Schema beschreibt die verschiedenen Attribute. Ein Attribut hat dabei immer einen festgelegten Datentyp. Außerdem gibt es immer ein oder mehrere Schlüsselattribute, durch die jede Zeile (Datensatz) angesprochen werden kann. Diese Schlüsselattribute müssen einzigartig sein.

Redundanzen

Redundanzen tretten bei gleichen Datensätzen in einer Datenbank auf. In dem obigen Beispiel Buch könnte beispielsweise Herr der Ringe als Redundant betrachtet werden, da es sich um den gleichen Autor und den gleichen Titel handelt. Dennoch handelt es sich um unterschiedliche ISBNs und die beiden Einträge haben unterschiedliche Preise.

Anomalien

Sollten sich die ISBNs der beiden Herr der Ringe Bücher nicht unterscheiden, so wären die Datensätze widersprüchlich zu einander, da es gleiche Bücher mit unterschiedlichen Preisen geben würde.

Beispiel

Wir schauen uns die Firma Schule24 Gmbh an. Da sie eine sehr soziale Firma ist, die auf das Wohl der Mitarbeiter achtet, können bestimmte Ausgaben erstattet werden. Allerdings müssen diese Ausgaben im Sinne des Unternehmens getätigt werden. Möglich als Erstattung ist zum Beispiel das Mittagessen, aber auch Bücher für das Lernen, etc. Eine Person aus der Finanzverwaltung kümmert sich dann darum, dass auch die jeweiligen Ausgaben erstattet werden.

Datenbank-Ausgaben

Die Möglichkeit Bezahlt ist ein Wahrheitswert, der angibt, ob das Geld dem Mitarbeiter schon erstattet worden ist.

Datenbank-Nutzer

Als Attribut dient der Username. Aus diesem Grund muss auch jeder Nutzername einzigartig sein. Würde in der Firma zwei Mitarbeiter mit dem gleichen Name arbeiten, kann eine Anomalie entstehen. Für den Zweck des Beispieles reicht die aktuelle Modellierung jedoch aus.

Datenbank-Erstattungen

In der Erstattungs-Datenbank werden sowohl Username als auch Ausgaben-ID als Schlüsselattribut gewertet. Da jede Ausgabe auch nur einmal bezahlt werden kann, ist die vorhandene Kombination einzigartig.

Eins ist zu wenig

Generell ist es eine sinnvolle Idee, dass man nicht nur eine Tabelle hat, sondern mehrere unterschiedliche Tabellen, die sich aufeinander beziehen. Der Vorteil ist zum einen die Übersichtlichkeit und die geringere Fehleranfälligkeit, aber auch die Veringerung von Schreibaktionen, die für Veränderungen notwendig sind.

Malen nach Zahlen - Entity Relation Modell

Die Modellierung einer Datenbank kann in einem Entity-Relation Modell gezeigt werden. Dabei handelt es sich um eine grafische Darstellung der Datenbank.

Begriffe

Begriffe-ER

Entität

Eine Entität ist ein Objekt aus der Realsituation, über das Informationen zu speichern sind. –Moodle

Jede Tabelle aus dem obigen Beispiel wäre demnach eine Entität.

Beziehung

Eine Beziehung beschreibt den Zusammenhang von Entitäten untereinander. –Moodle

Unterschiedliche Datenbanken müssen miteinander verknüpft werden. Das kann zum beispiel - wie im obigen Beispiel - der Nutzername eines Benutzers sein, der in der aktuellen Datenbank Veränderungen vorgenommen hat. Durch den einzigartigen Nutzernamen kann dann mehr Information zu diesem Benutzer eingeholt werden.

Attribut

Ein Attribut bezeichnet die Eigentschaft einer Entität oder einer Beziehung.

Ein Schlüssselattribut beschreibt zusätzlich die Einzigartigkeit dieses Attributes.

Beispiel

ER-Modell_Expenses

Der obige Graph stellt das Entity-Relation Modell der Ausgaben-Modellierung dar.

Kardinalitäten

Um anzugeben, wie viele Entitäten an an einer Beziehung beteiligt sind, benutzt man Kardinalitäten. Im obigen ER-Modell sind sie als Angaben an den ausgehenden Verbindungen der Entitäten zu erkennen. Sie geben beispielsweise an, dass ein Nutzer m Ausgaben ausgeben kann und n Ausgaben von einer Person erstattet werden können.

Kardinalitäten können folgende Formen annehmen:

  • 1:1
  • n:m
  • n:1

erweiterte schematische Schreibweise

Um die Relationen auch in der schmatischen Schreibweise darzustellen gibt es unterschiedliche Möglichkeiten, die abhängig sind von der Kardinalität.

  • bei einer 1:1 Beziehung lassen sich beide Entitäten in ein Schema fassen.
  • bei einer 1:n Beziehung benutzt man zwei Schematas, die durch Schlüsselattribute ihre Beziehung darstellen.
  • bei einer n:m Beziehung benutzt man drei Schematas. Zwei Schematas stellen jeweils die Entität dar, und das letzte stellt die Beziehung dar.

Beispiel

SchematischeDarstellung_Beispiel

Bei dieser Schreibweise werden die Fremdschlüssel mit einem Pfeil nach oben angegeben. Die Beziehungen der verschiedenen Entitäten wird dadurch sichtbar gemacht.

Datenbanken verbessern durch Normalisierung

Datenbanken müssen nicht immer zwangsläufig neu geschrieben werden, wenn sie nicht mehr übersichtlich oder logisch aufgebaut sind. Bestehende Datenbanken können auch verbessert werden. Diesen Vorgang bezeichnet man als Normalisierung. Im folgenden wird dieses Vorgehen näher erläutert.

Neuerdings hat die Firma Schule24 Gmbh auch eine eigene Kantine. Da aber die Datenbank, um die Essensausgaben zu überwachen, nicht ordentlich geplant wurde, ist vieles unübersichtlich geworden.

Aktuell sieht die Datenbank folgendermaßen aus:

Datenbank_Ausgang

Schrittweise soll nun die Datenbank umgeformt werden, sodass eine übersichtliche Struktur entsteht.

1. Normalform

Wie man erkennen kann, sind in der Datenbank mehrere Datensätze pro Schlüssel verfügbar. Dies soll nun aufgehoben werden.

1NF

Sicherlich wäre es auch gut, dass man den Name in Vor- und Nachname aufteilt, aus Platzgründen wird dieses Attribut jedoch nicht aufgeteilt.

Definition

Eine Tabelle befindet sich in der ersten Normalform, wenn alle Attribute einen atomaren* wertebereich haben. –Moodle

atomar: Ein Attributswert enhält keine komplexen Wertebelegungen. So teilt man beispielsweise Name in Vor- und Nachname auf. Jeder Wert enthält also nur eine Information.

2. Normalform

Um die Redundanz, die auch zu Anomalien führen kann, zu verringern, sucht man funktionale Abhängigkeiten und lagert alle Attribut mit der selben Abhängigkeit aus. Die zweite Normalform ist nur bei Attributen mit voller funktionaler Abhängigkeit erreicht.

2NF-1

2NF-2

2NF-3

Abhängigkeiten

Ein Attribut B ist von einem Attribut A funktional abängig, wenn durch jeden Wert von A eindeutig ein Wert für B entsteht. –Moodle

Ein Attribut B ist von einer Attributskobination (A1, A2) voll funktional abhängig, wenn B funktional abhängig von der Kombination (A1, A2) ist, nicht aber breits A1 oder A2. –Moodle

Funktionale Abhängigkeiten werden folgendermaßen notiert:

MitarbeiterID -> Name, Abteilung

Definition

Ein Datenbankschema ist in der zweiten Normalform, wenn es in der 1NF ist und zusätzlich jedes Nichtschlüsselattribut vom Primärschlüssek voll funktional abhängig ist und nicht bereits von einem Teil der Schlüsselattribute. –Moodle

3. Normalform

In dem letzten Schritt wird nach transitiven Abhängigkeiten geschaut.

ein Attribut C ist von einem Attribut A transitiv abhängig, wenn es ein Attribut B gibt, mit A -> B -> C. Dabei darf A nicht funktional abhängig von B sein. –Moodle

Das bedutet, dass nach Attributen geschaut wird, die nicht direkt nötig sind und beispielsweise außerhalb definiert sind. In unserem Fall ist das der Tarif

3NF-1

3NF-2

3NF-3

3NF-4

Definition

Ein Datenbanschema ist in der dritten Normalform, wenn es in der 2NF ist und es zusätzlich kein Nichtschlüsselattribut gibt, das transtitiv abhängig von einem Schlüsselattribut ist. Es darf also keine funktionalen Abhängigkeiten zwischen Nichtschlüsselattributen geben. –Moodle

Die Datenbank ist nun übersichtlicher und deutlich leichter zu benutzen.