NoSQL

Erstellt von Thankaraj JJ am 06. Dez 2022

Was sind NoSQLDatenbanken?

Eine als NoSQL bekannte Datenbankverwaltungsstrategie kann mit einer Vielzahl von Datenmodellen arbeiten, darunter SchlüsselWert-, Dokument-, Spalten und Graphenformate. Im Allgemeinen ist eine NoSQLDatenbank verteilt, nichtrelational, flexibel und skalierbar. Im Gegensatz zur üblichen ACIDTransaktionskonsistenz (Atomizität, Konsistenz, Isolation und Dauerhaftigkeit) relationaler und SQLDatenbanken sind die Abwesenheit eines Datenbankschemas, Datenclustering, Unterstützung für Replikation und schliesslich Konsistenz weitere häufige Merkmale von NoSQLDatenbanken. Zahlreiche NoSQLDatensatzframeworks sind zudem Open Source.

Am Anfang bedeutete der BegriffNoSQL„, dass SQL nicht als API zum Zugriff auf Daten verwendet wurde. Viele NoSQLDatenbanken fügten jedoch aufgrund ihrer weit verbreiteten Verwendung und Nutzbarkeit SQLUnterstützung hinzu. Es ist mittlerweile allgemein bekannt, dass der AkronymNot Only SQL fürNoSQL steht.

Typen von NoSQL-Datenbanken

NoSQL-Datenbanksysteme gibt es in vier gängigen Varianten. Zwischen den einzelnen NoSQL-Typen gibt es erhebliche Unterschiede, die sich aus den verschiedenen Datenmodellen ergeben, die sie verwenden.

Dokument Datenbanken

Ein „Dokument“ ist die zentrale Idee eines Dokumentenspeichers. Alle dokumentenorientierten Datenbanken gehen davon aus, dass die Daten (oder Informationen) in einigen Standardformaten oder -kodierungen gekapselt und verschlüsselt sind, auch wenn die Einzelheiten dieser Definition je nach Datenbank variieren.XML, YAML und JSON sind gängige Codierungen, ebenso wie Binärformate wie BSON. In der Datenbank wird jedes Dokument durch einen einzigen Schlüssel identifiziert, der dieses Dokument kennzeichnet. Ein weiteres Merkmal einer dokumentorientierten Datenbank ist eine API oder Abfragesprache zum Abrufen von Dokumenten auf der Grundlage ihres Inhalts. Couchbase Server, MongoDB und MarkLogic sind allesamt Beispiele für Dokumentendatenbanken.

Verschiedene Implementierungen bieten unterschiedliche Möglichkeiten, Dokumente zu organisieren und/oder zu gruppieren:

  • Collections
  • Tags
  • Non-visible metadata
  • Directory hierarchies

Graph-Datenbanken

Mit Hilfe von Nodes, die Zeilen in einer relationalen Datenbank ähneln, und Edges, die Verbindungen zwischen Nodes darstellen, werden Daten in Graphendatenspeichern organisiert. Da das Graphensystem die Beziehungen zwischen den Knoten speichert, sind umfassendere Darstellungen der Datenbeziehungen möglich. Ausserdem ist das Graphdatenmodell im Gegensatz zu relationalen Modellen, die auf starren Schemas beruhen, anpassungsfähig an Nutzung und Zeit. Systeme wie Reservierungssysteme, Social-Media-Plattformen und Customer Relationship Management nutzen Graphdatenbanken, um Beziehungen abzubilden. AllegroGraph, IBM Graph und Neo4j sind allesamt Beispiele für Graphdatenbanken.

Hauptmerkmale der Graphdatenbank:

  • In einer graphenbasierten Datenbank ist es einfach, die Beziehung zwischen den Daten anhand der Links zu erkennen.
  • Die Ausgabe der Abfrage erfolgt in Echtzeit.
  • Die Geschwindigkeit hängt von der Anzahl der Beziehungen zwischen den Datenbankelementen ab.

Key-Value Stores

Diese Systeme, die auch als Key-Value-Datenbanken bezeichnet werden, verwenden ein einfaches Datenmodell, um einen eindeutigen Key mit einem zugehörigen Wert zu verknüpfen. Mit Hilfe dieses einfachen Modells können Anwendungen entwickelt werden, die sowohl hoch skalierbar als auch effizient sind. Für die Session-Verwaltung und die Zwischenspeicherung in Webanwendungen, wie z. B. die Verwaltung der Warenkorb-Daten von Online-Shoppern oder die Verwaltung der Sessions von Spielern in Multiplayer-Spielen, sind Key-Value-Datenbanken Die Ausrichtung der Implementierungen für die Arbeit mit RAM, Solid-State-Laufwerken oder Festplattenlaufwerken ist unterschiedlich. Aerospike, DynamoDB, Redis und Riak sind allesamt Beispiele für bekannte Key-Value-Datenbanken.

Ein Key-Value-Store ist wie eine relationale Datenbank mit nur zwei Spalten, nämlich dem Key und dem Value.

Hauptmerkmale des Key-Value-Stores:

  • Einfachheit.
  • Skalierbarkeit.
  • Geschwindigkeit.

Wide-Column Stores

Diese Datensätze nutzen natürliche „tables“, „sections“ und „lines“ wie soziale Datensatztabellen, jedoch können die Spaltennamen und die Organisation von einer Spalte zur anderen in einer einzelnen Tabelle variieren. Jede „section“ wird auch einzeln auf einer Ebene gespeichert. Anstelle der üblichen zeilenorientierten Speicherung ist ein Wide-Segment-Speicher optimal, wenn man Daten nach Sektionen abfragt. Typische Anwendungen, in denen Wide-Segment-Stores erfolgreich sein können, sind Empfehlungsmotoren, Inventare, Betrugserkennung und Ereignisprotokollierung. Accumulo, Amazon SimpleDB, Cassandra, HBase und Hypertable sind Beispiele für Wide-Segment-Stores.

Columnar orientierte Datenbanken sind dazu entworfen, Daten effizienter zu lesen und die Daten schneller abzurufen. Eine Spaltenorientierte Datenbank wird verwendets, um eine grosse Menge an Daten zu speichern. Wichtige Merkmale einer spaltenorientierten Datenbank:

  • Skalierbarkeit.
  • Komprimierung.
  • Responsive.

Vorteile von NoSQL:

  • NoSQLDatenbanken arbeiten an der Anwendungsentwicklung, insbesondere für intelligente, ständige WebAnwendungen, z. B. solche, die eine RESTAPI und Webdienste verwenden.
  • Diese Datensätze bieten Anpassungsfähigkeit an Informationen, die nicht standardisiert sind, was ein anpassbares Informationsmodell oder verschiedene Eigenschaften für verschiedene Informationselemente erfordert.
  • Sie bieten Anpassungsfähigkeit für grössere Informationssammlungen, die in Untersuchungen und künstlicher Intelligenz (KI) Anwendungen normal sind.
  • NoSQLDatenbanken sind besser für Cloud-, Mobile-, OnlineUnterhaltung und grosse Datenanforderungen geeignet.
  • Sie sind für explizite Anwendungsfälle vorgesehen und sind einfacher zu verwenden als allgemein verwendbare soziale oder SQLDatensätze für solche Anwendungen.

Nachteile von NoSQL:

  • Jede NoSQL-Informationsbasis hat ihre eigene Grammatik für die Abfrage und Überwachung von Informationen. Dies steht im Gegensatz zu SQL, der am weitesten verbreiteten Sprache für soziale und SQL-Datensatz-Frameworks.s.
  • Das Fehlen eines einheitlichen Musters für Datensätze und die Notwendigkeit, die Vertrauenswürdigkeit von Informationen zu verteidigen, die in sozialen und SQL-Datensätzen enthalten ist, entfällt.
  • Es wird erwartet, dass ein Mapping mit einer Art von Design die Informationen nutzt. Bei NoSQL sollte dies vom Anwendungsdesigner und nicht vom Application Designer der Informationsbasis durchgeführt werden.
  • Da die meisten NoSQLDatenbanken das mögliche Konsistenzmodell verwenden, bieten sie nicht das gleiche Mass an Datenkonsistenz wie SQL-Datensätze. Manchmal ist die Information nicht konsistent, was bedeutet, dass sie für Transaktionen, die eine schnelle Integrität erfordern, wie Bank- und ATM-Transaktionen, nicht geeignet sind.
  • Da NoSQLDatensätze frischer sind, gibt es keine umfassenden Branchenprinzipien wie bei sozialen und SQLDBMSBeiträgen.

NoSQL vs. SQL

SQL-Datenbanken sind weit verbreitet, während NoSQL-Datensätze für bestimmte Anwendungsfälle entworfen wurden. Die grundlegenden Unterschiede zwischen NoSQL und SQL können in den folgenden fünf Kategorien zusammengefasst werden: Programmierschnittstelle, Datenmodell, Musteranforderung, Flexibilität und Datenintegrität. Jeder bietet einen anderen Ansatz für diese Aspekte der Datenspeicherung und -wiederherstellung.

Wann sollte NoSQL eingesetzt werden?

  • Wenn eine grosse Menge an Daten gespeichert und abgerufen werden muss.
  • Die Beziehung zwischen den Daten, die Sie speichern, ist nicht so wichtig
  • Die Daten ändern sich mit der Zeit und sind nicht strukturiert.
  • Die Unterstützung von Einschränkungen und Joins ist auf der Datenbankebene nicht erforderlich.
  • Die Daten wachsen kontinuierlich und Sie müssen die Datenbank regelmässig skalieren, um die Daten zu verarbeiten.

Referenzen:

https://www.techtarget.com/searchdatamanagement/definition/NoSQL-Not-Only-SQL

https://www.geeksforgeeks.org/introduction-to-nosql/

https://en.wikipedia.org/wiki/NoSQL

https://matob.web.id/random/technology/nosql/

https://hostingdata.co.uk/nosql-database/

Nach oben scrollen