NoSQL-Tutorial: Arten von NoSQL-Datenbanken & Beispiel
โก Intelligente Zusammenfassung
NoSQL ist ein nicht-relationales Datenbankmanagementsystem, das kein festes Schema benรถtigt, Joins vermeidet und sich leicht skalieren lรคsst. Diese Ressource erklรคrt, was NoSQL ist, warum es existiert, seine Geschichte, seine Merkmale, die vier Datenbanktypen, das CAP-Theorem, die letztendliche Konsistenz sowie seine Vor- und Nachteile.

Was ist NoSQL?
NoSQL-Datenbank NoSQL ist ein nicht-relationales Datenverwaltungssystem, das kein festes Schema benรถtigt. Es vermeidet Joins und ist leicht skalierbar. Hauptzweck einer NoSQL-Datenbank ist die Speicherung verteilter Daten mit enormen Speicheranforderungen. NoSQL wird fรผr Big Data und Echtzeit-Webanwendungen eingesetzt. Beispiele hierfรผr sind Unternehmen wie Twitter, Facebook und Co. Google Sammeln jeden Tag Terabytes an Nutzerdaten.
NoSQL-Datenbank NoSQL steht fรผr โNot Only SQLโ oder โNot SQLโ. Obwohl โNoRELโ eine treffendere Bezeichnung wรคre, hat sich NoSQL durchgesetzt. Carl Strozzi fรผhrte das NoSQL-Konzept 1998 ein.
Traditionelle relationale Datenbankmanagementsysteme (RDBMS) verwenden die SQL-Syntax, um Daten zu speichern und abzurufen und so weitere Erkenntnisse zu gewinnen. Ein NoSQL-Datenbanksystem hingegen umfasst eine breite Palette von Datenbanktechnologien, die strukturierte, semistrukturierte, unstrukturierte und polymorphe Daten speichern kรถnnen. In diesem Tutorial zu NoSQL-Datenbanken erfahren Sie mehr darรผber anhand eines Diagramms.
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 zu diesem Problem besteht darin, die Datenbanklast bei steigender Last auf mehrere Hosts zu verteilen. Diese Methode wird als โScale-outโ bezeichnet.
NoSQL-Datenbanken sind nicht-relational und skalieren daher besser als relationale Datenbanken, da sie speziell fรผr Webanwendungen konzipiert wurden.
Kurze Geschichte der NoSQL-Datenbanken
- 1998 โ Carlo Strozzi verwendet den Begriff NoSQL fรผr seine leichtgewichtige, quelloffene relationale Datenbank.
- 2000 โ Graphdatenbank Neo4j wird eingefรผhrt.
- 2004 - Google BigTable wurde gestartet.
- 2005 - CouchDB gestartet.
- 2007 โ Die Forschungsarbeit รผber Amazon Dynamo ist erschienen.
- 2008 โ Facebook verรถffentlicht die Quellcodes Cassandra Projekt einfliessen.
- 2009 โ Der Begriff NoSQL wurde wieder eingefรผhrt.
Funktionen von NoSQL
Nicht relational
- NoSQL-Datenbanken folgen niemals dem relationales Modell.
- Verwenden Sie niemals Tabellen mit flachen, spaltenlosen Datensรคtzen.
- Arbeiten Sie mit in sich geschlossenen Aggregaten oder BLOBs.
- Objektrelationale Abbildung nicht erforderlichping und Datennormalisierung.
- Keine komplexen Funktionen wie Abfragesprachen, Abfrageplaner, referenzielle Integritรคtsverknรผpfungen oder ACID.
Schemafrei
- NoSQL-Datenbanken sind entweder schemalos oder verfรผgen รผber lockere Schemata.
- Eine Definition des Datenschemas ist nicht erforderlich.
- Bieten Sie heterogene Datenstrukturen im selben Bereich an.

Einfache API
- Bietet benutzerfreundliche Schnittstellen zum Speichern und Abfragen von Daten.
- APIs ermรถglichen Methoden zur Datenmanipulation und -auswahl auf niedriger Ebene.
- Textbasierte Protokolle werden hauptsรคchlich mit HTTP REST und JSON verwendet.
- Meist wurde eine nicht standardbasierte NoSQL-Abfragesprache verwendet.
- Webfรคhige Datenbanken, die als internetbasierte Dienste betrieben werden.
Verteilt
- Mehrere NoSQL-Datenbanken kรถnnen verteilt ausgefรผhrt werden.
- Bietet automatische Skalierungs- und Ausfallsicherungsfunktionen.
- Das ACID-Konzept muss oft zugunsten von Skalierbarkeit und Durchsatz vernachlรคssigt werden.
- Meist keine synchrone Replikation zwischen verteilten Knoten; asynchrone Multi-Master-Replikation, Peer-to-Peer-Replikation, HDFS-Replikation.
- Gewรคhrleistet lediglich letztendliche Konsistenz.
- Shared-Nothing-Architektur. Dies ermรถglicht weniger Koordination und eine hรถhere Verteilung.
Arten von NoSQL-Datenbanken
NoSQL-Datenbanken Datenbanken lassen sich hauptsรคchlich in vier Typen unterteilen: Schlรผssel-Wert-Paar-Datenbanken, spaltenorientierte Datenbanken, graphbasierte Datenbanken und dokumentenorientierte Datenbanken. Jede Kategorie hat ihre spezifischen Eigenschaften und Einschrรคnkungen. Keine der genannten Datenbanken eignet sich optimal fรผr alle Anwendungsfรคlle. Anwender sollten die Datenbank anhand ihrer 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. Dieses System ist fรผr die Verarbeitung groรer Datenmengen und hoher Lasten ausgelegt. Datenbanken, die Schlรผssel-Wert-Paare speichern, verwenden Hashtabellen, in denen jeder Schlรผssel eindeutig ist und der Wert beispielsweise JSON, BLOB (Binary Large Objects) oder eine Zeichenkette sein kann.
Ein Schlรผssel-Wert-Paar kann beispielsweise einen Schlรผssel wie โWebsiteโ enthalten, der mit einem Wert wie โGuru99 ".
Es handelt sich um eines der einfachsten Beispiele fรผr NoSQL-Datenbanken. Diese Art von NoSQL-Datenbank wird fรผr Sammlungen, Wรถrterbรผcher, assoziative Arrays usw. verwendet. Key-Value-Speicher helfen Entwicklern, schemalose Daten zu speichern. Sie eignen sich besonders fรผr Shops.ping Warenkorbinhalt.
Redis, Dynamo und Riak sind einige Beispiele fรผr NoSQL-Key-Value-Datenbanken. Sie basieren alle auf โฆ Amazonโs Dynamo-Papier.
Spaltenbasiert
Spaltenorientierte Datenbanken arbeiten mit Spalten und basieren auf der BigTable-Verรถffentlichung von [Name des Autors]. GoogleJede Spalte wird separat behandelt. Werte von einspaltigen Datenbanken werden zusammenhรคngend gespeichert.
Sie bieten eine hohe Leistung bei Aggregationsabfragen wie SUMME, ANZAHL, AVG, MIN usw., da die Daten direkt in einer Spalte verfรผgbar sind. Spaltenbasierte NoSQL-Datenbanken werden hรคufig zur Verwaltung von Data Warehouses verwendet. Business Intelligence, CRM und Bibliothekskataloge.
HBase, CassandraHypertable und NoSQL-Abfragebeispiele fรผr spaltenbasierte Datenbanken sind Beispiele fรผr NoSQL-Abfragen.
Dokumentenorientiert
Dokumentenorientierte NoSQL-Datenbanken speichern und rufen Daten als Schlรผssel-Wert-Paare ab, wobei der Wert als Dokument gespeichert wird. Dieses Dokument wird im JSON- oder XML-Format gespeichert. Der Wert wird von der Datenbank verstanden und kann abgefragt werden.
Im Diagramm links sehen Sie Zeilen und Spalten, rechts eine Dokumentendatenbank mit einer รคhnlichen Struktur wie JSON. Bei einer relationalen Datenbank mรผssen Sie die Spaltenstruktur kennen usw. Eine Dokumentendatenbank hingegen speichert Daten wie ein JSON-Objekt. Sie mรผssen diese nicht definieren, was sie flexibel macht.
Dieser Dokumenttyp wird hauptsรคchlich fรผr CMS-Systeme, Blog-Plattformen, Echtzeit-Analysen und E-Commerce-Anwendungen verwendet. Er sollte nicht fรผr komplexe Transaktionen eingesetzt werden, die mehrere Operationen oder Abfragen gegen unterschiedliche Aggregatstrukturen erfordern.
Amazon SimpleDB, CouchDB, MongoDBRiak und Lotus Notes sind beliebte dokumentenorientierte Programme. DBMS-Systeme.
Graphbasiert
Eine Graphdatenbank speichert Entitรคten sowie die Beziehungen zwischen diesen Entitรคten. Die Entitรคt wird als Knoten und die Beziehung als Kante gespeichert. Eine Kante stellt eine Beziehung zwischen zwei Knoten dar. Jeder Knoten und jede Kante besitzt eine eindeutige Kennung.
Im Gegensatz zu relationalen Datenbanken, in denen Tabellen lose miteinander verknรผpft sind, ist eine Graphdatenbank multirelational. Das Durchlaufen von Beziehungen ist schnell, da diese bereits in der Datenbank erfasst sind und nicht berechnet werden mรผssen. Graphbasierte Datenbanken werden hauptsรคchlich fรผr soziale Netzwerke, Logistik und Geodaten eingesetzt.
Neo4J, Unendlicher Graph, OrientDB, und FlockDB sind einige populรคre graphbasierte Datenbanken.
Abfragemechanismus-Tools fรผr NoSQL
Der gebrรคuchlichste Mechanismus zum Abrufen von Daten ist der REST-basierte Abruf eines Wertes anhand seines Schlรผssels/seiner ID mit einer GET-Ressource.
Dokumentenspeicherdatenbanken ermรถglichen komplexere Abfragen, da sie den Wert eines Schlรผssel-Wert-Paares verstehen. Zum Beispiel: CouchDB ermรถglicht die Definition von Ansichten mit MapReduce.
Was ist das CAP-Theorem?
Das CAP-Theorem wird auch Brewer-Theorem genannt. Es besagt, 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, Datenkopien auf mehreren Rechnern zu speichern, um hohe Verfรผgbarkeit und Skalierbarkeit zu gewรคhrleisten. รnderungen an Daten auf einem Rechner mรผssen daher automatisch auf alle anderen Kopien รผbertragen werden.
Die Datenreplikation erfolgt mรถglicherweise nicht sofort, da einige Kopien umgehend aktualisiert werden, andere jedoch erst spรคter. Diese Kopien kรถnnen zunรคchst inkonsistent sein, gleichen sich aber im Laufe der Zeit an. Daher der Name โeventuelle Konsistenzโ.
BASE: Basisch Averfรผgbar, Soft angeben, Eendgรผltige Konsistenz
- Im Prinzip bedeutet โverfรผgbarโ, dass die Datenbank gemรคร dem CAP-Theorem jederzeit verfรผgbar ist.
- โSoft Stateโ bedeutet, dass sich der Systemzustand auch ohne Eingabe รคndern kann.
- 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รคhigkeiten.
- Keine zentrale Fehlerquelle.
- Einfache Replikation.
- Eine separate Caching-Schicht ist nicht erforderlich.
- Es bietet schnelle Leistung und horizontale Skalierbarkeit.
- Kann strukturierte, semistrukturierte und unstrukturierte Daten gleichermaรen gut verarbeiten.
- Objektorientierte Programmierung, die einfach zu bedienen und flexibel ist.
- NoSQL-Datenbanken benรถtigen keinen dedizierten Hochleistungsserver.
- Unterstรผtzung wichtiger Entwicklersprachen und -plattformen.
- Einfacher zu implementieren als mit einem relationalen Datenbankmanagementsystem (RDBMS).
- Es kann als primรคre Datenquelle fรผr Online-Bewerbungen dienen.
- Verarbeitet Big Data und bewรคltigt Datengeschwindigkeit, -vielfalt, -volumen und -komplexitรคt.
- Ausgezeichnete Fรคhigkeiten im Betrieb verteilter Datenbanken und mehrerer Rechenzentren.
- Dadurch entfรคllt die Notwendigkeit einer separaten Caching-Schicht zur Datenspeicherung.
- Bietet ein flexibles Schema-Design, das sich problemlos ohne Ausfallzeiten oder Serviceunterbrechungen รคndern lรคsst.
Nachteile von NoSQL
- Keine Standardisierungsregeln.
- Begrenzte Abfragemรถglichkeiten.
- RDBMS Die Datenbanken und Werkzeuge sind vergleichsweise ausgereift.
- Es bietet keine herkรถmmlichen Datenbankfunktionen, wie etwa Konsistenz bei der gleichzeitigen Ausfรผhrung mehrerer Transaktionen.
- Wenn das Datenvolumen zunimmt, wird es schwierig, eindeutige Werte beizubehalten, da die Schlรผssel immer schwieriger zu verwalten sind.
- Funktioniert nicht so gut mit relationalen Daten.
- Die Lernkurve fรผr neue Entwickler ist steil.
- Open-Source-Lรถsungen sind fรผr Unternehmen nicht so beliebt.






