Fachartikel

Datenbanken im Überblick (2)

Datenbanken sind in der IT allgegenwärtig, doch nicht jede Datenbank eignet sich für jede Aufgabe. Gleichzeitig gibt es immer mehr Datenbankarten, aus denen Administratoren für neue Setups wählen können. Relationale Datenbanken, Zeitreihendatenbanken, NoSQL-Systeme, verteilte DBs – es ist nicht schwierig, dabei den Überblick zu verlieren. Wir verraten, welche DBs existieren und was Admins im Hinterkopf haben sollten. Im ersten Teil werfen wir einen Blick auf den Klassiker relationale Datenbanken. In der zweiten Folge geht es um verteilte Datenbanken und No-SQL-Systeme.
Die unterschiedlichen Datenbanktypen eignen sich je nach dem vorgesehen Einsatzszenario.
Verteilte Datenbanken für skalierbare Systeme
Relationale Datenbanken sind zuverlässig, performant und stabil – aber die allermeisten gängigen Implementierungen skalieren nicht zuverlässig in die Breite. Für die normale Website mit CMS im Hintergrund ist das zwar auch nicht nötig. Riesige Webshops jedoch, die abertausende Anfragen pro Sekunde abarbeiten müssen, werden eine einzelne Datenbank mit einiger Sicherheit an die Grenzen ihrer Leistungsfähigkeit bringen.

Ansätze zur Lösung des Problems gibt es einige, etwa Master-Slave-Szenarien, in denen zumindest etliche Backends für das Lesen von Daten zur Verfügung stehen. Früher waren die allermeisten Anwendungen im Unternehmensumfeld stark leselastig. Das ist heute zwar noch immer grundsätzlich so, jedoch verschiebt sich das Verhältnis langsam zugunsten von Schreibzugriffen. Nicht zuletzt daher hat es sich eingebürgert, echte Multi-Master-Setups zu bauen. Darunter versteht man verteilte Datenbanken, bei denen jeder einzelne Knoten sowohl den lesenden als auch den schreibenden Zugriff ermöglicht.

Nota bene: Verteilte Datenbanken können jede interne Struktur anwenden –neben verteilten RDBMS-Systemen sind auch verteilte Zeitreihendatenbanken denkbar. Aufgrund ihrer internen Struktur stellen verteilte RDBMS-Systeme aber technisch mit die höchste Hürde dar, die aus Sicht einer Datenbank denkbar ist. Denn zur Einhaltung der ACID-Regeln kommt hier neben den lokalen Herausforderungen die Aufgabe hinzu, die Transaktionen über die Grenzen einzelner Knoten und die Netzwerkgrenzen zwischen den Systemen hinweg sicher durchzuführen.


Bild 1: Galera schaltet sich als Kommunikationsschicht zu MariaDB hinzu und
baut so ein skalierbares Multi-Master-Setup auf Basis des RDBMS.

Verteilte Datenbanken kommen in der Regel nur dann zum Einsatz, wenn zuvor ein tatsächlicher Bedarf erhoben wurde. Denn der Betrieb einer solchen Lösung ist technisch nicht einfach und trivial. Wer einen realen Einsatzzweck hat, steht vor der Qual der Wahl: Für MariaDB sowie MySQL ist Galera [1] die verbreitetste Lösung. Bei PostgreSQL buhlen mehrere Ansätze um die Gunst der Nutzer, etwa Yugabyte oder CitusDB. Jeder dieser Ansätze hat allerdings eigene, spezifische Nachteile.
No-SQL-Datenbanken
RDBMS-Systeme nutzen als Abfragesprache (Query Language) einen Nachfolger der ebenfalls von E.F. Codd entwickelten Sprache "SEQUEL". SQL steht heute für "Structured Query Language" und beschreibt die Art und Weise, wie Anwender Daten in MySQL schreiben oder Daten aus der Datenbank auslesen. Praktisch jedes RDBMS-System der Gegenwart spricht einen SQL-Dialekt, wobei diese nicht unbedingt kompatibel miteinander sein müssen.

Basale Befehle etwa funktionieren auf MariaDB und PostgreSQL gleich oder zumindest ähnlich, bei komplexen Schritten sind aber oft völlig andere Kommandos nötig. Trotzdem: Weil RDBMS-Systeme lange den Markt komplett dominierten, wurde es irgendwann üblich, alle anderen Systeme unter dem Begriff "No-SQL-Datenbanken" zu subsummieren. Die Krux: Alleine anhand des Begriffes ist kein Rückschluss darauf möglich, um welche Art von Datenbank es sich handelt oder was deren spezifischen Fähigkeiten sind.

Eine Sonderform der No-SQL-Datenbanken stellt übrigens SQLite dar. Zwar kommt in SQLite eine Syntaxsprache zur Anwendung, die einen klassischen SQL-Dialekt darstellt. Die ganze Idee hinter SQLite besteht aber ja bekanntlich darin, keine echte Datenbank zu sein. SQLite-Datenbanken sind stattdessen in der Regel einzelne Textdateien auf der Festplatte, auf die der Zugriff durch ein spezielles Interface – etwa eine Bibliothek – erfolgt. Das ist zwar weder sonderlich performant noch skaliert es gut, gerade viele kleinere Programme sind so aber in der Lage, ihre eigenen Metadaten abzuspeichern. Und das ganz ohne Zwang für den Admin, eine separate Datenbank aufzusetzen.

Manchem werden viele Datenbanken eher unter ihrem Produktnamen begegnet sein als unter der Art, zu der das jeweilige Produkt gehört. MongoDB etwa erfreut sich seit einigen Jahren großer Beliebtheit und gehört zur Gruppe der No-SQL-Datenbanken. Es ist dokumentenorientiert, sodass Einträge etwa JSON- oder XML-Strukturen haben können. Mittlerweile steht MongoDB nicht mehr unter einer Open-Source-Lizenz, nach wie vor handelt es sich jedoch um die am weitesten verbreitete No-SQL-Datenbank überhaupt.

Im ersten Teil des Artikels werfen wir einen Blick auf den Klassiker relationale Datenbanken. In der zweiten Folge geht es um verteilte Datenbanken und No-SQL-Systeme. Im dritten Teil des Workshops widmen wir uns Zeitreihendatenbanken und Key-Value-Speichern.
12.09.2022/ln/Martin Loschwitz

Nachrichten

Videobearbeitung in der AWS-Cloud [9.09.2022]

Quantums Dateiystem "StorNext" ist ab sofort als Abonnement im AWS Marketplace verfügbar. Mit Quantum StorNext in AWS sollen Nutzer ihre Inhalte unter anderem für die Videoproduktion hochflexibel verwalten können. So lassen Videos in der Cloud von beliebigen Standorten bearbeiten, ohne dass Dateien zwischen einzelnen Benutzern kopiert oder übertragen werden müssen. [mehr]

Spürhund für Datenbanken [17.08.2022]

Die Überwachungs- und Sicherheitsplattform für Cloudanwendungen aus dem Hause Datadog erweitert ihre Fähigkeiten um das Monitoring von Microsoft SQL Server und Microsoft Azure. Die Unterstützung baut auf dem Produkt "Deep Database Monitoring" auf und will kostspielige und langsame Queries, falsche Indizes in SQL-Server- oder Azure-Datenbanken sowie Engpässe in Anwendungen aufzeigen. [mehr]

Tipps & Tools

Download der Woche: CheckDrive 2022 [28.09.2022]

Egal ob HDD oder SSD – auch im Jahr 2022 ist die Festplatte das anfälligste Verschleißteil eines Computers. Eine gelegentliches Durchleuchten ihres Zustands kann also nie schaden. Hier leistet das Windows-Tool "CheckDrive 2022" gute Dienste. Es erkennt auftretende Fehler und kann diese sogar beheben. [mehr]

Storage-Turbo für seismische 3D-Analyse [8.09.2022]

High Perfomance Computing gehört seit 20 Jahren zum Portfolio der DUG Technology. Das Unternehmen ermöglicht damit beispielsweise geowissenschaftliche Analysen für die Öl- und Gasindustrie. Um den flexiblen Bedarf der Kunden zu erfüllen und neue Märkte zu erschließen, bietet das Unternehmen nun HPC-as-a-Service an. Bei Projekten im PByte-Bereich stößt aber die HDD-basierte Infrastruktur rasch an ihre Grenzen. Unser Fachartikel online zeigt, wie eine neue All-Flash-Umgebung Abhilfe schafft, die auf das Konzept "Disaggregated Shared Everything" setzt. [mehr]

Buchbesprechung

The Security Culture Playbook

von Perry Carpenter und Kai Roer

Anzeigen