NoSQL-Tutorial: Was ist, Arten von NoSQL-Datenbanken und Beispiele

Was ist NoSQL?

NoSQL Die Datenbank ist ein nicht relationales Datenverwaltungssystem, das kein festes Schema erfordert. Es vermeidet Verknüpfungen und ist einfach zu skalieren. Der Hauptzweck der Verwendung einer NoSQL-Datenbank besteht in verteilten Datenspeichern mit enormem Datenspeicherbedarf. NoSQL wird für Big Data und Echtzeit-Webanwendungen verwendet. Beispielsweise sammeln Unternehmen wie Twitter, Facebook und Google jeden Tag Terabytes an Benutzerdaten.

NoSQL-Datenbank steht für „Not Only SQL“ oder „Not SQL“. Obwohl ein besserer Begriff „NoREL“ wäre, hat sich NoSQL durchgesetzt. Carl Strozz führte 1998 das NoSQL-Konzept ein.

Herkömmliche RDBMS verwenden SQL-Syntax zum Speichern und Abrufen von Daten für weitere Erkenntnisse. Stattdessen umfasst ein NoSQL-Datenbanksystem eine breite Palette von Datenbanktechnologien, die strukturierte, halbstrukturierte, unstrukturierte und polymorphe Daten speichern können. Lassen Sie uns NoSQL anhand eines Diagramms in diesem NoSQL-Datenbank-Tutorial verstehen:

NoSQL-Datenbank

Warum NoSQL?

Das Konzept der NoSQL-Datenbanken wurde bei Internetgiganten wie Google, Facebook, Amazonusw., die mit riesigen Datenmengen umgehen. Die Systemreaktionszeit wird langsam, wenn Sie RDBMS für große Datenmengen verwenden.

Um dieses Problem zu lösen, könnten wir unsere Systeme „skalieren“, indem wir unsere vorhandene Hardware aufrüsten. Dieser Prozess ist teuer.

Die Alternative für dieses Problem besteht darin, die Datenbanklast bei zunehmender Last auf mehrere Hosts zu verteilen. Diese Methode wird als „Skalierung“ bezeichnet.

NoSQL

NoSQL-Datenbanken sind nicht relational und lassen sich daher besser skalieren als relationale Datenbanken, da sie speziell für Webanwendungen entwickelt wurden.

Kurze Geschichte der NoSQL-Datenbanken

  • 1998 – Carlo Strozzi verwendet den Begriff NoSQL für seine leichte, relationale Open-Source-Datenbank
  • 2000 – Graphdatenbank Neo4j wird gestartet
  • 2004 – Google BigTable wird gestartet
  • 2005- CouchDB wird gestartet
  • 2007 – Die Forschungsarbeit über Amazon Dynamo wird freigegeben
  • 2008 – Facebooks Open Source Cassandra Projekt
  • 2009 – Der Begriff NoSQL wurde wieder eingeführt

Funktionen von NoSQL

Nicht relational

  • NoSQL-Datenbanken folgen niemals dem relationales Modell
  • Stellen Sie niemals Tabellen mit flachen Datensätzen mit festen Spalten bereit
  • Arbeiten Sie mit eigenständigen Aggregaten oder BLOBs
  • Erfordert keine objektrelationale Zuordnung und Datennormalisierung
  • Keine komplexen Funktionen wie Abfragesprachen, Abfrageplaner, Verknüpfungen zur referenziellen Integrität, ACID

Schemafrei

  • NoSQL-Datenbanken sind entweder schemafrei oder verfügen über entspannte Schemata
  • Es ist keinerlei Definition des Datenschemas erforderlich
  • Bietet heterogene Datenstrukturen in derselben Domäne
Funktionen von NoSQL
NoSQL ist schemafrei

Einfache API

  • Bietet benutzerfreundliche Schnittstellen zum Speichern und Abfragen der bereitgestellten Daten
  • APIs ermöglichen Datenmanipulations- und Auswahlmethoden auf niedriger Ebene
  • Textbasierte Protokolle, die hauptsächlich mit HTTP REST mit JSON verwendet werden
  • Meistens wird keine standardbasierte NoSQL-Abfragesprache verwendet
  • Webfähige Datenbanken, die als mit dem Internet verbundene Dienste ausgeführt werden

Verteilt

  • Mehrere NoSQL-Datenbanken können verteilt ausgeführt werden
  • Bietet automatische Skalierungs- und Failover-Funktionen
  • Oftmals kann das ACID-Konzept zugunsten der Skalierbarkeit und des Durchsatzes geopfert werden
  • Meist keine synchrone Replikation zwischen verteilten Knoten Asynchrone Multi-Master-Replikation, Peer-to-Peer, HDFS-Replikation
  • Nur für letztendliche Konsistenz
  • Nichts geteilt ArchiStruktur. Dies ermöglicht eine geringere Koordination und eine höhere Verteilung.
Funktionen von NoSQL
NoSQL ist Shared Nothing.

Arten von NoSQL-Datenbanken

NoSQL-Datenbanken werden hauptsächlich in vier Typen eingeteilt: Schlüssel-Wert-Paar, spaltenorientiert, diagrammbasiert und dokumentorientiert. Jede Kategorie hat ihre einzigartigen Eigenschaften und Einschränkungen. Keine der oben genannten Datenbanken ist besser geeignet, alle Probleme zu lösen. Benutzer sollten die Datenbank basierend auf ihren Produktanforderungen auswählen.

Arten von NoSQL-Datenbanken:

  • Basierend auf Schlüssel-Wert-Paaren
  • Spaltenorientiertes Diagramm
  • Graphenbasiert
  • Dokumentenorientiert

Arten von NoSQL-Datenbanken

Basierend auf Schlüsselwertpaaren

Daten werden in Schlüssel/Wert-Paaren gespeichert. Es ist so konzipiert, dass es große Datenmengen und hohe Lasten verarbeiten kann.

Schlüssel-Wert-Paar-Speicherdatenbanken speichern Daten als Hash-Tabelle, in der jeder Schlüssel eindeutig ist und der Wert ein JSON, BLOB (Binary Large Objects), eine Zeichenfolge usw. sein kann.

Beispielsweise kann ein Schlüssel-Wert-Paar einen Schlüssel wie „Website“ enthalten, der mit einem Wert wie „Guru99“ verknüpft ist.

Basierend auf Schlüsselwertpaaren

Es handelt sich um eines der grundlegendsten NoSQL-Datenbankbeispiele. Diese Art von NoSQL-Datenbank wird als Sammlung, Wörterbücher, assoziative Arrays usw. verwendet. Schlüsselwertspeicher helfen dem Entwickler, schemalose Daten zu speichern. Sie eignen sich am besten für den Warenkorbinhalt.

Redis, Dynamo und Riak sind einige NoSQL-Beispiele für Schlüsselwertspeicher-Datenbanken. Sie alle basieren auf Amazon’s Dynamo-Papier.

Spaltenbasiert

Spaltenorientierte Datenbanken arbeiten mit Spalten und basieren auf dem BigTable-Papier von Google. Jede Spalte wird separat behandelt. Werte einspaltiger Datenbanken werden zusammenhängend gespeichert.

Spaltenbasierte NoSQL-Datenbank

Spaltenbasierte NoSQL-Datenbank

Sie liefern eine hohe Leistung bei Aggregationsabfragen wie SUM, COUNT, AVG, MIN usw., da die Daten in einer Spalte leicht verfügbar sind.

Spaltenbasierte NoSQL-Datenbanken werden häufig zur Verwaltung von Data Warehouses verwendet. Business Intelligence, CRM, Bibliothekszettelkataloge,

HBase, Cassandra, HBase, Hypertable sind NoSQL-Abfragebeispiele für spaltenbasierte Datenbanken.

Dokumentenorientiert

Die dokumentenorientierte NoSQL-Datenbank speichert und ruft Daten als Schlüssel-Wert-Paar ab, der Wertteil wird jedoch als Dokument gespeichert. Das Dokument wird im JSON- oder XML-Format gespeichert. Der Wert wird vom DB verstanden und kann abgefragt werden.

Relational vs. Dokumentieren

Relational vs. Dokumentieren

In diesem Diagramm auf der linken Seite sehen Sie, dass wir Zeilen und Spalten haben, und auf der rechten Seite haben wir eine Dokumentendatenbank, die eine ähnliche Struktur wie JSON hat. Für die relationale Datenbank müssen Sie nun wissen, welche Spalten Sie haben und so weiter. Für eine Dokumentdatenbank verfügen Sie jedoch über einen Datenspeicher wie ein JSON-Objekt. Sie müssen nicht definieren, was es flexibel macht.

Der Dokumenttyp wird hauptsächlich für CMS-Systeme, Blogging-Plattformen, Echtzeitanalysen und E-Commerce-Anwendungen verwendet. Er sollte nicht für komplexe Transaktionen verwendet werden, die mehrere Vorgänge oder Abfragen für unterschiedliche Aggregatstrukturen erfordern.

Amazon SimpleDB, CouchDB, MongoDB, Riak, Lotusnoten, MongoDB, sind beliebte Dokumente, die ihren Ursprung haben DBMS-Systeme.

Graphbasiert

Eine Diagrammdatenbank speichert Entitäten sowie die Beziehungen zwischen diesen Entitäten. Die Entität wird als Knoten mit der Beziehung als Kanten gespeichert. Eine Kante gibt eine Beziehung zwischen Knoten an. Jeder Knoten und jede Kante hat eine eindeutige Kennung.

Graphbasiert

Im Vergleich zu einer relationalen Datenbank, in der Tabellen lose verbunden sind, ist eine Graph-Datenbank von Natur aus multirelational. Das Durchlaufen von Beziehungen erfolgt schnell, da sie bereits in der Datenbank erfasst sind und nicht berechnet werden müssen.

Graphbasierte Datenbank, die hauptsächlich für soziale Netzwerke, Logistik und Geodaten verwendet wird.

Neo4J, Unendlicher Graph, OrientDB, FlockDB sind einige beliebte graphbasierte Datenbanken.

Abfragemechanismus-Tools für NoSQL

Der gebräuchlichste Datenabrufmechanismus ist der REST-basierte Abruf eines Werts basierend auf seinem Schlüssel/ID mit der GET-Ressource

Die Dokumentenspeicherdatenbank bietet schwierigere Abfragen, da sie den Wert in einem Schlüssel-Wert-Paar versteht. Zum Beispiel, CouchDB ermöglicht das Definieren von Ansichten mit MapReduce

Was ist das CAP-Theorem?

Das CAP-Theorem wird auch Brewer-Theorem genannt. Darin heißt es, dass ein verteilter Datenspeicher unmöglich mehr als zwei von drei Garantien bieten kann

  1. Konsistenz
  2. Verfügbarkeit
  3. Partitionstoleranz

Konsistenz:

Die Daten sollten auch nach der Ausführung einer Operation konsistent bleiben. Das bedeutet, dass alle zukünftigen Leseanforderungen die Daten enthalten sollten, sobald sie geschrieben wurden. Beispielsweise sollten nach der Aktualisierung des Bestellstatus alle Clients dieselben Daten sehen können.

Verfügbarkeit:

Die Datenbank sollte immer verfügbar und reaktionsfähig sein. Es sollte keine Ausfallzeiten geben.

Partitionstoleranz:

Partitionstoleranz bedeutet, dass das System auch dann weiter funktionieren sollte, wenn die Kommunikation zwischen den Servern nicht stabil ist. Beispielsweise können die Server in mehrere Gruppen aufgeteilt werden, die möglicherweise nicht miteinander kommunizieren. Wenn hier ein Teil der Datenbank nicht verfügbar ist, bleiben andere Teile immer davon unberührt.

Eventuelle Konsistenz

Der Begriff „eventuelle Konsistenz“ bedeutet, Kopien von Daten auf mehreren Computern zu haben, um eine hohe Verfügbarkeit und Skalierbarkeit zu erreichen. Daher müssen Änderungen, die an einem Datenelement auf einem Computer vorgenommen werden, an andere Replikate weitergegeben werden.

Die Datenreplikation erfolgt möglicherweise nicht sofort, da einige Kopien sofort aktualisiert werden, während andere im Laufe der Zeit aktualisiert werden. Diese Kopien können gegenseitig sein, werden jedoch im Laufe der Zeit konsistent. Daher der Name „eventuelle Konsistenz“.

BASE: Basisch Averfügbar, Soft angeben, Eendgültige Konsistenz

  • Grundsätzlich bedeutet „verfügbar“, dass DB gemäß CAP-Theorem jederzeit verfügbar ist
  • Soft-State bedeutet auch ohne Eingabe; Der Systemstatus kann sich ändern
  • Eventuelle Konsistenz bedeutet, dass das System im Laufe der Zeit konsistent wird

Eventuelle Konsistenz

Vorteile von NoSQL

  • Kann als primäre oder analytische Datenquelle verwendet werden
  • Big-Data-Fähigkeit
  • Kein einzelner Fehlerpunkt
  • Einfache Replikation
  • Keine separate Caching-Schicht erforderlich
  • Es bietet schnelle Leistung und horizontale Skalierbarkeit.
  • Kann strukturierte, halbstrukturierte und unstrukturierte Daten gleichermaßen verarbeiten
  • Objektorientierte Programmierung, die einfach zu bedienen und flexibel ist
  • NoSQL-Datenbanken benötigen keinen dedizierten Hochleistungsserver
  • Unterstützen Sie wichtige Entwicklersprachen und -plattformen
  • Einfacher zu implementieren als die Verwendung von RDBMS
  • Es kann als primäre Datenquelle für Online-Bewerbungen dienen.
  • Verarbeitet große Datenmengen, die die Geschwindigkeit, Vielfalt, das Volumen und die Komplexität der Daten verwalten
  • Hervorragend geeignet für den Betrieb verteilter Datenbanken und mehrerer Rechenzentren
  • Macht eine spezielle Caching-Ebene zum Speichern von Daten überflüssig
  • Bietet ein flexibles Schemadesign, das ohne Ausfallzeiten oder Dienstunterbrechungen einfach geändert werden kann

Nachteile von NoSQL

  • Keine Standardisierungsregeln
  • Begrenzte Abfragemöglichkeiten
  • RDBMS Datenbanken und Tools sind vergleichsweise ausgereift
  • Es bietet keine herkömmlichen Datenbankfunktionen, wie etwa Konsistenz bei der gleichzeitigen Ausführung mehrerer Transaktionen.
  • Wenn das Datenvolumen zunimmt, ist es schwierig, eindeutige Werte beizubehalten, da Schlüssel schwieriger werden
  • Funktioniert nicht so gut mit relationalen Daten
  • Die Lernkurve für neue Entwickler ist hart
  • Open-Source-Optionen sind daher bei Unternehmen nicht so beliebt.

Zusammenfassung

  • NoSQL ist ein nicht relationales DMS, das kein festes Schema erfordert, Joins vermeidet und einfach zu skalieren ist
  • Das Konzept der NoSQL-Datenbanken wurde bei Internetgiganten wie Google, Facebook, Amazonusw., die mit riesigen Datenmengen umgehen
  • Im Jahr 1998 verwendete Carlo Strozzi den Begriff NoSQL für seine leichte, relationale Open-Source-Datenbank
  • NoSQL-Datenbanken folgen niemals dem relationalen Modell, sie sind entweder schemafrei oder verfügen über entspannte Schemata
  • Vier Arten von NoSQL-Datenbanken sind 1). Basierend auf Schlüssel-Wert-Paaren 2). Spaltenorientiertes Diagramm 3). Diagramme basierend auf 4). Dokumentenorientiert
  • NOSQL kann strukturierte, halbstrukturierte und unstrukturierte Daten gleichermaßen verarbeiten
  • Das CAP-Theorem besteht aus den drei Wörtern Konsistenz, Verfügbarkeit und Partitionstoleranz
  • BASE steht für Basisch Averfügbar, Soft angeben, Eendgültige Konsistenz
  • Der Begriff „eventuelle Konsistenz“ bedeutet, Kopien von Daten auf mehreren Computern zu haben, um eine hohe Verfügbarkeit und Skalierbarkeit zu erreichen
  • NOSQL bieten begrenzte Abfragemöglichkeiten