Dieser Artikel setzt sich mit der Architektur und den Vorteilen einer Datenbank etwas genauer auseinander.

Sehen wir uns dazu folgende Grafik an:

Anwendungen speichern Daten in eigenen Formaten. Dies ist durch Pfeile dargestellt. Ein Konverter kann Daten umwandeln, sodass Daten aus Anwendung 3 auch in 1 genutzt werden können.
Anwendungen speichern Daten in eigenen Formaten

Wir sehen verschiedene Anwendungen, die jeweils Daten speichern müssen. Diese Daten werden wahrscheinlich in proprietären Formaten gespeichert. Dies kann zum Beispiel XML, CSV, Plaintext oder Key-Value sein.

Die Verwendung von Daten aus anderen Anwendungen ist ohne größeren Aufwand vorerst nicht möglich. Hierfür muss ein Konverter bereitgestellt werden. Dieser bearbeitet die Daten so, dass die Zielanwendung mit den externen Daten arbeiten kann.

Im Gegensatz dazu, gibt es eine Datenbank. Schematisch ist dies in nachfolgender Grafik dargestellt:

Links sind Anwendungen, rechts eine Datenbank. Durch eine Schnittstelle speichern die Anwendungen die Daten im DBMS.
Anwendungen speichern Daten in einer Datenbank

Das Datenbankmanagementsystem (DBMS) ist sozusagen die Rahmenanwendung, um Datenbanken und die Schnittstelle zu verwalten. Weiterführend kann über das DBMS auch ein Berechtigungskonzept angewendet werden, um den Zugriff zu Daten zu organisieren.

In der oberen Grafik hat jede Anwendung eine eigene Datenbank. Die Pfeile gehen nun jedoch nur bis zum DBMS. Dieses stellt eine Schnittstelle bereit, um einen einheitlichen Datenzugriff zu gewährleisten. Dies wird mittels Structured Query Language (SQL) erreicht. Das DBMS verarbeitet die Befehle und führt dann intern die Operationen aus. Die Operationen

Vor- und Nachteile

Wenn die Informationen von der Anwendung verwaltet werden, hat dies meist folgende Auswirkungen:

  • Schnelle Datenverarbeitung
  • Keine externe Abhängigkeit
  • Freies Format/Schema der Daten
  • Anwendung ist vollständig für Daten (und Sicherheit) zuständig
  • Meist exklusiver Zugriff für einen Benutzer

Ein Datenbankmanagementsystem bietet folgende Eigenschaften:

  • Performante Datenverarbeitung auch bei großen Datenmengen
  • Unterstützung mehrerer (paralleler) Benutzer
  • Einheitliche Kommunikationsschnittstelle (SQL)
  • Zentrale Rechteverwaltung/Zugriffsschutz
  • Organisation in Tabellen und Zeilen

Eine Datenbank bietet zudem weitere Vorteile, die in einer eigenen Anwendung erst Implementiert werden müssten:

  • Datenintegrität
  • Transaktionen
  • Trigger
  • Replikation/Backups
  • Wiederherstellung nach einem Fehler

Als Nachteil ist der höhere Ressourcenverbrauch zu sehen. Diese werden Aufgrund der zusätzlichen Funktionen, neben dem reinen Speichern der Daten, benötigt. Ebenfalls ist eine gewisse Einarbeitungszeit notwendig. Die Datenbank kann einen kritischen Pfad darstellen, wenn viele Anwendung Daten speichern. Bei Ausfall einer Datenbank arbeiten die Anwendungen meist ebenfalls nicht mehr korrekt.

O-Kalkül und binäre Suche

Das O-Kalkül und die binäre Suche möchte ich nur kurz vorstellen. Das O-Kalkül bestimmt das Verhalten von Funktionen. Im Bezug auf Datenbanken oder Algorithmen die Dauer einer Funktion in Abhängigkeit der Daten.

Stellen wir uns nun vor, wie haben eine Liste die linear durchsucht wird. In Abhängigkeit der Länge der Liste, variiert die Dauer der Suche. Daher hätte diese lineare Suche O(n). Wird die Liste länger, steigt auch die Zeit zum Suchen.

Datenbanken speichern einen Index sehr effizient ab. Nehmen wird nachfolgenden Binärbaum als Beispiel. Die Zahlen exemplarisch IDs einer Tabelle dar:

Ein Binärbaum mit verschiedenen IDs

Bei einem Binärbaum hat, wie der Name schon sagt, ein Knoten maximal 2 Kinder. Ich verwende hier eine spezielle Form eines Binärbaumes. Der linke Wert ist immer kleiner als der Wert des Knotens. Rechts ist immer größer als der Wert des Knotens. Da eine ID innerhalb einer Datenbanktabelle einmalig ist, kann eine Zahl niemals doppelt vorkommen.

Wenn eine Zahl gesucht wird, kann das DBMS anhand dieser Baumstruktur effizient suchen. Suchen wir den Eintrag mit der ID 8, benötigen wir nur 3 Schritte. Kommen neue Einträge hinzu, erhält der Baum nach und nach neue Ebenen. In diesem Falle hätte die vierte Ebene Platz für 8 IDs. Die Darauf folgende Ebene hat Platz für 16 usw… Anhand dieses Beispiels ist erkennbar, dass die Liste linear wächst, jedoch nicht die Anzahl der Schritte zum Suchen.

Ich möchte anmerken, dass es auch degenerierte Bäume geben kann, welche den hier genannten Vorteil nicht mehr bieten. Daher verweise ich hier auf AVL-Bäume und weiterführende Literatur.

Ausblick

Im nächsten Artikel widmen wir uns SQL. Wir werden eine Datenbank und einige Tabellen erstellen. Anschließend arbeiten wir auf dieser Datenbank mit einigen praktischen Beispielen.