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

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: