Definition „Not only SQL“ Was bieten NoSQL-Datenbanken?

Von chrissikraus 3 min Lesedauer

Anbieter zum Thema

Unter den Begriff NoSQL versteht man Datenbankenarten, die nicht zu den relationalen Datenbanken zählen. NoSQL ist ein sehr weitläufiger Begriff, der viele verschiedene Ansätze vereint.

Von Key-Value-Stores über In-Memory- bis hin zu Graph-Datenbanken: NoSQL kennzeichnet sich durch verschiedene Typen, die oft kombiniert werden.
Von Key-Value-Stores über In-Memory- bis hin zu Graph-Datenbanken: NoSQL kennzeichnet sich durch verschiedene Typen, die oft kombiniert werden.
(Bild: Placidplace / Pixabay)

NoSQL ist ein Sammelbegriff für nicht-relationale Datenbanktechnologien. Während relationale Datenbanken wie MySQL ein striktes Schema vorgeben und Daten in fest definierten Tabellen aus Zeilen und Spalten speichern, verfolgen NoSQL-Datenbanken viele unterschiedliche Ansätze, z. B. Schlüssel-Wert-Paare, Dokumente, Graphen oder Spalten.

Der Begriff NoSQL steht für „Not only SQL“, was zum Ausdruck bringt, dass NoSQL-Datenbanken mehr als nur SQL als Abfragesprache unterstützen. NoSQL-Datenbanken existieren schon seit Jahrzehnten, doch der Begriff selbst wurde erst 2009 durch Johan Oskarsson geprägt. Die Gemeinsamkeit aller NoSQL-Datenbanken ist, dass sie Anforderungen erfüllen, die mit relationalen Datenbanken nicht oder weniger effizient realisierbar wären.

Welche Datenbankarten fallen unter den Begriff NoSQL?

NoSQL umfasst viele Arten von Datenbanken mit unterschiedlichen Datenmodellen. Die bedeutendsten Arten sind Schlüssel-Wert-Datenbanken, Dokumentdatenbanken, Graphdatenbanken, spaltenorientierte Datenbanken und Zeitreihendatenbanken.

Schlüssel-Wert-Datenbanken

Schlüssel-Wert-Datenbanken halten Daten als Paaren aus einem Schlüssel und einem Wert fest. Die Daten müssen nicht in ein bestimmtes Schema gebracht werden. Das macht die Verarbeitung effizient, kann in manchen Konstellationen aber auch zu einer sehr hohen Komplexität führen.

Beispiele:

  • Redis
  • DynamoDB

Dokumentdatenbanken

Dokumentdatenbanken hinterlegen Informationen in Form von Dokumenten. Diese Art von Datenbank ist besonders flexibel anwendbar, weil sie Daten direkt in der Form speichern, in der sie vorliegen. Informationen müssen nicht in ein spezifisches Schema konvertiert werden, sondern können als Bilder, Audiodateien, Textdateien und vieles mehr hinterlegt werden.

Häufig werden textbasierte Informationen in Form von XML oder JSON gespeichert, weil diese Formate gut für die unkomplizierte Abbildung unstrukturierter oder begrenzt strukturierter Daten geeignet sind. So können verschiedenste Informationen hinterlegt werden, ohne ein starres Datenbankschema zu entwerfen, z. B. Benutzerprofile, Produktkataloge, Benutzereinstellungen oder Statistiken.

Beispiele:

  • MongoDB
  • CouchDB

Graph-Datenbanken

Graph-Datenbanken legen Informationen in Form von Graphen ab. Diese bestehen aus Knoten und Kanten. Die Knoten repräsentieren Informationen und die Kanten stellen die Beziehungen zwischen den einzelnen Knoten dar. Graphdatenbanken werden dort eingesetzt, wo die Darstellung von Beziehungen im Mittelpunkt der Anwendung steht, z. B. in sozialen Netzwerken.

Beispiele:

  • Neo4j
  • ArangoDB

Spaltenorientierte Datenbanken

Spaltenorientierte Datenbanken speichern Daten in Spalten ab. Anders als relationale Datenbanken, welche Informationen in Tabellen mit strikt vordefinierten Zeilen ablegen, sind die Spalten in spaltenorientierten Datenbanken voneinander unabhängig. So müssen nur Informationen hinterlegt werden, die wirklich gebraucht werden. Außerdem kann einzeln auf Spalten zugegriffen werden. Das macht die Datenverarbeitung besonders effizient, wenn häufig auf bestimmte Spalten zugreifen werden muss, z. B. zu Analysezwecken.

Beispiele:

  • Amazon Redshift
  • Apache Hive

Zeitreihendatenbanken

Zeitreihendatenbanken sind eine Sonderform von Datenbanken, die für das effiziente Dokumentieren und Analysieren von Zeitreihen entwickelt wurden. Sie werden für Informationen genutzt, die in regulären Intervallen erfasst werden, z. B. Wetterdaten, Sensordaten oder Aktienkurse. Zeitreihendatenbanken sind häufig spaltenorientiert aufgebaut, weil dies eine effiziente Verarbeitung von großen Datenmengen ermöglicht.

Beispiele:

  • InfluxDB
  • Prometheus

Welche Vorteile haben nicht-relationale Datenbanken?

Jede Art von NoSQL-Datenbankmodell bringt seine eigenen Vorteile und Nachteile mit sich. Im Vergleich mit relationalen Datenbanken gibt es jedoch einige allgemeine Vorteile zu beobachten.

Flexibilität

Relationale Datenbanken erfordern z. B. immer ein festes Schema, das die Datenstruktur genau vorgibt. NoSQL-Datenbanken hingegen arbeiten mit sehr flexiblen und minimalen Vorgaben und können somit einfacher und flexibler an veränderliche Bedürfnisse angepasst werden.

Vereinfachte Entwicklung

Die geringere Komplexität gestaltet zudem die Entwicklungsarbeit einfacher. Ein Entwickler muss nicht erst ein komplexes Schema entwerfen, um Daten zu speichern. Eine NoSQL-Datenbank ist schneller konzipiert, nur so komplex wie nötig und effizienter in der Handhabung.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Verbesserte Skalierbarkeit

NoSQL-Datenbanken sind im Vergleich zu relationalen Datenbanken unkompliziert horizontal skalierbar. Sie können auf mehrere Server verteilt werden, um hohe Leistung auch bei der Verarbeitung großer Datenmengen zu garantieren. Damit sind sie an sich verändernde Leistungsanforderungen anpassbar.

Fazit

NoSQL-Datenbanken bieten einige Vorteile gegenüber relationalen Datenbanken. Dazu gehören Skalierbarkeit, Flexibilität und unkomplizierte Entwicklung. NoSQL wird immer häufiger verwendet, um Anwendungen zu ermöglichen, die mit relationalen Datenbanken nicht zufriedenstellend abgebildet werden können.

Unter dem Begriff No-SQL finden sich verschiedene Datenbankarten, die für unterschiedliche Zwecke geeignet sind, z. B. Graphdatenbanken zur gezielten Darstellung von Beziehungen oder spaltenorientierte Datenbanken zur effizienten Verarbeitung großer Datenmengen. Auch wenn relationale Datenbanken weiterhin relevant für bestimmte Anwendungsfälle bleiben, bietet NoSQL Entwicklern zusätzliche Möglichkeiten, um die optimale Technologie für jede Anwendung zu finden.

(ID:49780670)