Relationale Datenbank
Relationale Datenbanken sind die am häufigsten verwendete Art von Datenbanken. Sie basieren auf dem relationalen Datenbankmodell. Gespeichert werden die Daten dabei in Tabellen, welche mit Schlüsseln untereinander verbunden sind. Zur Verwaltung wird meist die Anfragesprache SQL (Structured Query Language) verwendet.
In dieser Abbildung siehst Du eine einfache Darstellung zweier Tabellen einer relationalen Datenbank. Es gibt eine Tabelle für Kundendaten, die jeweils über eine ID, einen Vornamen und einen Nachnamen verfügen. Die ID fungiert dabei als eindeutig zuweisbarer Schlüssel, der in der gesamten Kundentabelle einzigartig ist. Die Tabelle „Bestellung“ hat die Spalten Bestellnummer, Kunden-ID und Bestelldatum. Die Bestellnummer ist dabei wieder eindeutig – die Kunden-ID ist in dieser Tabelle der Fremdschlüssel (dieser zeigt auf die Kunden-Tabelle), über den ermittelt werden kann, welcher Kunde/welche Kundin die Bestellung aufgegeben hat.
Relationale Datenbanken werden in vielen Bereichen eingesetzt, wie z.B. im E-Commerce (für Bestellungen, Produkte oder Kundeninformationen), im Finanzwesen (für Transaktionen, Konten oder Kundeninformationen), im Gesundheitswesen (für Patientenakten, medizinischen Bildern oder Labordaten) oder im Bildungswesen (für Schülerinformationen, Lehrpläne oder Kursangebote).
NoSQL-Datenbank
NoSQL-Datenbanken (not only SQL) sind eine Gruppe von Datenbanken, die nicht auf dem relationalen Modell basieren und in der Regel besser für unstrukturierte und unregelmäßige Daten geeignet sind. NoSQL-Datenbanken sind flexibler, skalierbarer und leistungsstärker als relationale Datenbanken. Wie der Name „NoSQL“ bereits impliziert, benötigt man für die Verwaltung und Bearbeitung von NoSQL-Datenbanken nicht unbedingt eine SQL-spezifische Zugriffssprache. Zu NoSQL-Datenbanken zählen unter anderem:
- Key-Value Datenbanken
- Dokumentenbasierte Datenbanken
- Graph-Datenbanken
Es gibt noch weitere NoSQL-Datenbanken, die oben aufgezählten werden allerdings am häufigsten verwendet. Im folgenden Text bekommst du nun eine kleine Übersicht darüber, wie diese NoSQL-Datenbanken aufgebaut sind.
Key-Value Datenbanken
In Key-Value Datenbanken werden Daten, wie der Name bereits vermuten lässt, als Schlüssel-Wert-Paare abgespeichert. Jeder Datensatz hat also einen eindeutig zuweisbaren Schlüssel.
Im oben angegebenen Beispiel werden wieder Kunden und deren Bestellungen gespeichert. Im Fall der Key-Value Datenbank können die Informationen beispielsweise so gespeichert werden, dass die jeweiligen Bestellungen direkt im Value des Kunden stehen. Wie genau Du eine Key-Value Datenbank gestalten und aufbauen sollst, lernst Du im Unterricht.
Dokumentenbasierte Datenbanken
In Dokumentenorientierten Datenbanken werden anstelle von Tabellen Dokumente verwendet, um Daten zu speichern. In jedem Dokument sind alle relevanten Informationen zum jeweiligen Datensatz gespeichert. Das Format der Dokumente ist meist JSON (JavaScript Object Notation) oder BSON (Binary JSON).
Im Gegensatz zu relationalen Datenbanken erfordern dokumentenbasierte Datenbanken kein festes Schema und ermöglichen eine flexible Datenmodellierung, da Dokumente leicht geändert oder erweitert werden können, ohne die gesamte Datenbankstruktur zu ändern. Dies kann insbesondere für Anwendungen von Vorteil sein, die sich häufig ändern oder in denen es schwierig ist, ein festes Datenmodell im Voraus zu planen.
Manch einer könnte vermuten, dass Key-Value Datenbanken und dokumentenbasierte Datenbanken die Daten auf die selbe Art und Weise speichern. Es gibt jedoch einige, feine Unterschiede, die sich auf Performance und Zugriff auswirken. Key-Value-Datenbanken speichern Daten z.B. als Schlüssel-Wert-Paare, während dokumentenbasierte Datenbanken Daten als Dokumente speichern. Key-Value-Datenbanken eignen sich daher am besten für schnellen Zugriff auf einfache, strukturierte Daten, während dokumentenbasierte Datenbanken besser für halbstrukturierte oder unstrukturierte Daten geeignet sind.
Möchte man allerdings mehrere komplexe Beziehungen zwischen Daten abbilden, sind dokumentenbasierte Datenbanken nicht wirklich geeignet. In diesen Fällen kann man z.B. auf eine Graph-Datenbank umsteigen.
Graph-Datenbanken
In Graph-Datenbanken werden die gespeicherten Daten als Knoten und Kanten dargestellt. Die Knoten stehen dabei für Objekte oder Dokumente, wohingegen Kanten die verschiedenen Beziehungen zwischen den Objekten oder Dokumenten darstellen, welche in beide Richtungen verlaufen können (z.B. „hat gekauft“, „kennt“, „besitzt“).
Mit Graph-Datenbanken können komplexe Beziehungen zwischen Daten effektiv modelliert und Abfragen dadurch optimiert werden. Dies ist vor allem nützlich für Anwendungen, in denen in erster Linie die Beziehungen zwischen Daten wichtig sind, wie z.B. soziale Netzwerke, Wissensmanagement und E-Commerce-Plattformen.
Im Bezug auf die Bestellungen der Kunden werden die Kunden sowie die Bestellungen nun als Knoten dargestellt. Die Kanten stellen dar, welche Bestellung von welchem Kunden/welcher Kundin bestellt wurde. In diesem einfachen Beispiel ist es nicht wirklich ersichtlich, warum Graph-Datenbanken so hilfreich sind beim Abbilden von komplexen Beziehungen, jedoch soll hier auch nur ein grober Überblick geschaffen werden.
Objektorientierte Datenbank
Objektorientierte Datenbanken (OODB) sind spezielle Arten von Datenbanken, die Informationen und Daten als Objekte speichert. Diese Objekte können Eigenschaften (wie Namen oder Alter) und Verhalten (wie Methoden oder Aktionen) haben. Objektorientierte Datenbanken ermöglichen es uns, Daten auf eine natürlichere Weise zu speichern, ähnlich wie in der realen Welt. Sie ermöglichen es uns, komplexe Informationen abzubilden und die Beziehungen zwischen den Daten intuitiv zu verwalten. Dadurch wird es einfacher, Anwendungen zu entwickeln und zu warten, da sie besser zur Art und Weise passen, wie wir über Daten denken.
Zur Darstellung einer Objektorientierten Datenbank verwenden wir wieder das Kundenbestellungs-Beispiel. Im Fall einer Objektorientierten Datenbank werden nicht nur die Objekte selbst, sondern auch die Grundstruktur (Klasse) wird abgespeichert. Die Kunden enthalten dabei jeweils eine Referenz zur jeweiligen Bestellung.
Es ist wichtig zu beachten, dass objektorientierte Datenbanken nicht immer die beste Wahl für alle Anwendungsfälle sind. Je nach Art der Daten und den Anforderungen einer Anwendung können andere Arten von Datenbanken, wie relationale oder NoSQL-Datenbanken, möglicherweise besser geeignet sein. Die Wahl der richtigen Datenbank hängt von den spezifischen Anforderungen und Zielen eines Projekts ab.
In-Memory-Datenbank
In-Memory-Datenbanken sind spezielle Datenbanken, bei denen die Daten im Arbeitsspeicher (RAM) des Computers gespeichert werden. Im Gegensatz zu anderen Datenbanken (Relationale DB´s, NoSQL-DB´s, …), bei denen Daten auf Festplatten oder anderen dauerhaften Speichermedien gespeichert sind, bleiben die Daten in In-Memory-Datenbanken nur für die Dauer des Betriebs im Arbeitsspeicher. Sprich, wenn das System heruntergefahren oder neu gestartet wird, gehen die im Arbeitsspeicher gespeicherten Daten verloren.
Der wahrscheinlich größte Vorteil bei In-Memory-Datenbanken ist die schnelle Zugriffszeit. Die Zentraleinheit (CPU) des Computers kann direkt auf den RAM zugreifen und somit sehr schnell schreiben bzw. lesen. Dies macht In-Memory-Datenbanken vor allem für Operationen perfekt, die Hochgeschwindigkeit benötigen, wie z.B. Auktionsplattformen, die Gebotsdaten in Echtzeit in das System einpflegen möchten. Wenn die Daten allerdings auf Dauer gespeichert werden sollen, müssen diese noch in eine weitere Datenbank verschoben werden. Aber auch für das Entwickeln von Software, bevor diese in den Live-Betrieb geht, werden In-Memory-Datenbanken verwendet, da diese schnell implementiert und einfach verwendet werden können.

In dieser Grafik wird der Aufbau einer In-Memory-Datenbank grob dargestellt. Der Speicher stellt dabei den Arbeitsspeicher dar. Darin befinden sich die Datenstrukturen (Daten, die in verschiedenen Strukturen gespeichert werden), die Datenkomprimierung (damit wird Speicherplatz eingespart) und dem Caching (für schnelleren Zugriff auf Beispielsweise häufig abgefragte Daten).
Geo-Datenbank
Geo-Datenbanken werden dazu verwendet, um geografische Daten einfach speichern, organisieren und abfragen zu können. Die Daten können auf unterschiedliche Arten gespeichert werden. Unter anderem entweder als Rastermodell – Geodaten werden in einem regelmäßigen Gitter oder Raster gespeichert, ähnlich wie bei einem Rasterbild – oder als Vektormodell. Ähnlich wie bei der Graph-Datenbank werden hier entweder Punkte und Linien, sowie Flächen verwendet, um Orte, Straßen, Gebäude oder sogar ganze Länder abzubilden. Mithilfe dieser Strukturen kannst du z.B. sehr einfach nach Orten in einem bestimmten Bereich suchen (Restaurants in deiner Nähe) oder die Entfernung zwischen zwei Punkten messen. Des weiteren können bestimmte Adressen einfach in geografische Koordinaten umgewandelt werden. All dies machen sich Kartendienste (wie Google Maps oder GPS-Navigationssysteme) oder Behörden bzw. Unternehmen zunutze, die Städte oder Logistik planen.

Die Unterschiede zwischen Vektormodell und Rastermodell werden in dieser Abbildung sehr schön aufgezeigt – sowohl mit dem Vektormodell als auch mit dem Rastermodell lassen sich verschiedenste Vegetationen einfach abbilden.
Keine Sorge, falls die Vielzahl an unterschiedlichen Datenbanken zunächst überwältigend wirkt. Dieser Lernbeitrag dient lediglich dazu, Dir einen ersten Überblick zu verschaffen. Die Feinheiten und Details wirst Du im Laufe Deiner Ausbildung am IT-Kolleg Imst ganz selbstverständlich kennenlernen.
Drag and Drop
Hast Du Dir gemerkt, wie die einzelnen Datenbanken aufgebaut sind?
Hier kannst Du Dein Wissen testen: