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:
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-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

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.

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
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.
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.

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.
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.
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
- Konsistenz
- Verfรผgbarkeit
- 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
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






