Datenbanken: Grundlagen

Kein Beitragsbild

Thiemo Fetzer

Thiemo Fetzer lebt seit 2008 in London und promoviert dort im Fachbereich...

Jeder kennt Datenbanken, jeder nutzt sie – wahrscheinlich sogar täglich. Doch wie die Sache funktioniert, gehört nicht zum Allgemeinwissen. Grund genug, um einmal hinter die Dinge zu schauen und sich mit den Grundlagen der Datenbank zu beschäftigen.

Das ER-Modell beschreibt die Beziehungen zwischen einzelnen Datensätzen und ist die wohl wichtigste Grundlage für die professionelle Arbeit mit Datenbanksystemen und dem Datenmanagement. Dieser Artikel soll einen Einblick in die komplexen Beziehungen von Daten geben und die einzelnen möglichen Relationen anhand von praktischen Beispielen zeigen.

Um erfolgreich ausgefeilte Datenbanksysteme zu erstellen, benötigt man das entsprechende Fachwissen über Grundkonzepte von Datenbanken. Zuerst ist zu klären, was überhaupt eine Datenbank ist und wozu diese benötigt wird.

Eine Datenbank ist eine Sammlung von Objekten (Daten). Diese Daten sind in Tabellen untergebracht, ein Datenobjekt kann eine Anweisung, eine Verknüpfung oder einfach nur ein Text sein. Eine Datenbank kann beliebig viele Tabellen haben.

Die Tabellen, in denen die Daten gespeichert sind werden durch Spalten und Reihen dargestellt, was die strukturelle Verteilung deutlich macht. Eine komplette Reihe einer Datenbanktabelle wird als Datensatz betrachtet. Die Anzahl der Spalten ist hier verantwortlich für die Länge des Datensatzes. Ein Feld ist eine bestimmte Spalte aus einem Datensatz.


Spalten und Datensatz

Anhand der Abbildung kann man erkennen, wie auf einen einzelnen Datensatz zugegriffen wird. Ein Datensatz ist durch seine Einmaligkeit gekennzeichnet. Diese einmalige Kennzeichnung erleichtert den Zugriff auf die jeweiligen Daten.

Sie kennen dieses Prinzip selbst aus dem täglichen Leben – denken Sie nur an Ihren eigenen Personalausweis. Dieser ist durch eine einmalige Nummer fest definiert. Es gibt also keinen weiteren Menschen, der einen Personalausweis mit der gleichen Nummer hat. Nach genau diesem Prinzip arbeiten Datenbanken. Durch die Festlegung eines einmaligen Schlüssels, dem sogenannten Primärschlüssel (primary key) kann ein Datensatz als einmalig definiert und mit der einmaligen Kennzeichnung auf diesen zugegriffen werden.

E-Book Effektives Online Marketing von Andreas Hecht

E-Book: Effektives Online Marketing

Entdecke die Power des perfekten Online-Marketings für deine Website. Du erfährst neue Techniken, die deine Website automatisch besser ranken lassen und die dir nach und nach einen Expertenstatus verleihen werden. [...]

Was genau ist SQL?
Wer sich bis jetzt nur am Rande mit Datenbanken befasst hat kommt bei der intensiven Einarbeitung nicht um die Abfragesprache SQL (standard query language) herum. Mit SQL Abfragen kann man Befehlszeilen und Anweisungen an den Server senden, gar kleine Programme schreiben, doch Sinn macht das Ganze erst, wenn die Datenbank mit Programmen, wie PHP Skripten verbunden wird, worin das PHP Skript über SQL auf die Daten in der Datenbank zugreift und diese manipuliert, das heisst: verändert.

SQL besteht aus strikten Regeln. Diese beschreiben, was beispielsweise eine zulässige Befehlssyntax ist oder welche Inhalte für Felder verwendet werden. Jede Spalte kann nur mit Daten gefüllt werden, die dem zulässigen Datentyp entsprechen. Sie können also keinen Text für eine Ganzzahl (Integer) einsetzen. Die Indexe (Schlüssel) beschleunigen den Zugriff auf die Daten durch Such- und Sortierfunktionen.

Das relationale Modell beschreibt die Beziehungen zwischen den einzelnen Daten. Schon bei der Wahl der Tabellenstruktur wird man mit diesem System aus Beziehungen konfrontiert. Das folgende Beispiel eines kleinen Hardware-Shops zeigt im Kleinen einfache Beziehungen.


Tabellenbeispiel

Zunächst müssen wir festlegen, worin diese Beziehungen liegen. Der einmalige Schlüssel ist hier die Artikel – ID. Mit dieser kann man auf die weiteren Daten des Artikels zugreifen. Der nächste Schlüssel ist die Kategorie – ID. Hier finden wir auch schon die erste Beziehung. Mit der Kategorie – ID wird festgelegt, in welche Kategorie ein Artikel gehört. In unserem Beispiel sind das Prozessoren, Festplatten und RAM – Bausteine. Die Daten, wie jetzt die Kategorie heißt, oder welche Beschreibung es allgemein zu der Kategorie gibt, welche Artikel es gibt sind in einer anderen Tabelle gespeichert. Mit der Kategorie – ID als Primärschlüssel kann man auf diese Daten zugreifen.

Screenshot
Die Tabelle mit den Kategorien könnte wie folgt aussehen:

Wie Sie sehen, hat man nach dem ER-Modell (Entity Relationship-Modell) zwischen den einzelnen Tabellen und Datensätzen eine Beziehung erzeugt. Diese Beziehungen sind nicht immer deutlich, doch es erscheint logisch, die Daten so fein wie nur möglich zu verteilen und anhand eines Schlüssels auf diese zuzugreifen.

Es ist außerdem praktisch, die Daten so zu verteilen. Fügt man in die obige Artikel-Tabelle auch noch die Daten der Kategorien ein und will später diese Daten der Kategorien ändern, dann muss man die Daten für jeden einzelnen Artikel der dieser Kategorie angehört, ändern. Das wäre natürlich viel zu umständlich.

Bei dieser Datenverteilung spricht man von der Normalisierung von Daten, dies erfolgt nach den Regeln, die anhand des Beispiels gezeigt wurden.

Welche Beziehungsformen gibt es?
Das Beispiel hat eine einfache Beziehung zwischen den Daten aus zwei Tabellen gezeigt. Man spricht hier von einer n – 1 Beziehung. In der Tabelle der Kategorien wurden die Daten der Kategorie gespeichert, diese sind direkt mit den Artikel-Daten aus ihrer Tabelle verknüpft, da in beiden Tabellen jeder Datensatz eindeutig (Primärschlüssel) zugeordnet ist. Doch können in der Artikel-Tabelle die Kategorie-ID bei vielen Artikel gleich sein, dennoch ist jeder Eintrag in der Kategorie-Tabelle einmalig. Deshalb spricht man hier von n – 1, da auf der linken Seite der Schlüssel mehrfach auftauchen kann.

Doch es gibt neben dieser n – 1 Beziehung noch zwei weitere Beziehungsarten. Zunächst wollen wir ihnen die 1-1 Beziehung vorstellen.

Die 1:1 Beziehung besteht zwischen zwei Tabellen, die jeweils Daten einer ID-Speichern. Hier werden in der zweiten Tabelle z.B. Daten eines Artikels gespeichert, die nicht unbedingt notwendig sind. In einer Artikeldatenbank eines Shops können das die Support-Kontakte oder die Garantie usw. sein. Diese Daten haben in beiden Tabellen den gleichen Schlüssel, da sie ja zum gleichen Artikel gehören. Man spricht hier von der 1-1 Beziehung.

Nun wollen wir uns der letzten möglichen Beziehungsart zuwenden. Die n – n Beziehung. Sie entsteht wenn die Normalisierungsregeln nicht komplett angewandt wurden.

Ein Beispiel
Ein User bestellt in einem Shop mehrere Artikel gleichzeitig. Er erhält dafür eine Bestellnummer. Diese Bestellnummer ist für alle Artikel gleich, da sie ja durch eine Bestellung entstanden sind. Doch die Bestellung wird jetzt in einzelne Datensätze unterteilt. Jeder bestellte Artikel wird in einer Tabelle aufgeführt. Hier sind dann die User-ID (ID des Käufers) und die Artikel – ID gleich, und diese Gleichheit tritt unter jedem weiteren bestellten Artikel, einer Bestellung, des gleichen Artikels auf. Hierbei handelt es sich um eine n – n Beziehung.

Die Nachvollziehung, speziell die der n – n Beziehung ist sehr schwer, deshalb sollte man sich das bildlich vorstellen. Die Tabelle in der die Bestellungen unseres Hardware-Shops gespeichert sind, sieht wie folgt aus.

Bestellungs – ID (pro Artikel) Kunden – ID Bestellnummer Artikel – ID
1 1 4 2
2 1 4 3
3 1 4 4

Wenn man die Beziehungen hier nachvollzieht herrscht die n – n Beziehung zwischen der Kunden – ID und der Bestellnummer. Wer jetzt aus den vorherigen Artikel die Bestellung des Kunden mit der ID = 1 nachvollzieht kann man feststellen, das er unter der Bestellnummer 4 auf einmal die Artikel mit der ID 2, 3 und 4 bestellt hat, das wären ein Prozessor, eine Festplatte und ein RAM Baustein.

Dieses komplexe Beispiel, welches noch sehr abgespeckt ist, hat sie nun in das ER – Modell eingeführt, und soll eine gute Grundlage für das weitere Arbeiten mit professionellen Datenbanksystemen unter SQL sein.

Thiemo Fetzer

Thiemo Fetzer lebt seit 2008 in London und promoviert dort im Fachbereich "Entwicklungsökonomie" an der London School of Economics. Zuvor hat er Wirtschaftswissenschaften, Mathematik und Informatik in Magdeburg und Ulm studiert.

Sortiert nach:   neueste | älteste | beste Bewertung
trackback

[…] MySQL Datenbankhandbuch: Tutorial Normalisierung von Datenbanken: Sinn und Zweck der Normalisierung Datenbanken: Grundlagen | Datenbanken | Dr. Web Magazin Danach kannst du Beginnen Sql zu lehrnen. Weiters solltes du dann auch die Grundlagen von Php […]

Phil.Rauschi.F
Gast

vielen Dank =)
nun bin ich einigermaßen gut vorbereitet für meine morgige Klausur
liebe Grüße aus FFM

Anno Nühm
Gast

Sehr schön und verständlich geschrieben.

Hätte gerne noch mehr zum Thema Datenbanken gelesen – so aufbereitet klingt das tatsächlich nachvollziehbar und sogar ein Wenig nach Spaß!

Also gerne mehr davon & vielen Dank für diesen Artikel. =)

Markus
Gast

Hallo Thiemo,

das ist ein wirklich guter Artikel. Du erwähnst alles was man wissen muss:
ER-Modell, Kardinalität, SQL und ein Beispiel. Wenn Du mir erlaubst, würde ich gerne eine konstruktive Kritik üben. Du hast leider die Urgrundlage nicht erwähnt. Das Relationale Datenbankmodell wurde leider nicht erwähnt. Aber sonst ist es ein sehr guter Artikel, der besonders für Einsteiger eine gute Grundlage bietet.

Beste Grüße,
Markus

wpDiscuz