Warum Nosql kein Acid ist
Veröffentlicht: 2022-11-19Es wird viel darüber diskutiert, ob NoSQL-Datenbanken „sauer“ sind oder nicht. Das Hauptargument gegen die Acidität von NoSQL - Datenbanken ist , dass sie nicht alle Funktionen einer traditionellen relationalen Datenbank unterstützen . NoSQL-Datenbanken sind oft so konzipiert, dass sie skalierbarer und einfacher zu verwenden sind als eine relationale Datenbank, aber sie opfern einige der Funktionen, die eine relationale Datenbank robuster machen. Beispielsweise unterstützen NoSQL-Datenbanken normalerweise keine Transaktionen, was ein Hauptmerkmal einer relationalen Datenbank ist. Wenn Sie also eine NoSQL-Datenbank verwenden, müssen Sie möglicherweise auf einige Funktionen verzichten, die Sie von einer relationalen Datenbank gewohnt sind.
Eine NoSQL-Datenbank ist nicht ACID-konform. Ein konsistenter Geisteszustand in dem Sinne, dass er formbar, weich und konsistent ist. Wenn Amazon diese Funktion verwenden würde, könnten Sie also immer Bücher bei ihnen kaufen, aber sie könnten nicht vorhersagen, wann sie gefüllt sein würden. Sie sollen den Satz von Brewer widerlegen.
Oracle, MySQL, PostgreSQL und Microsoft SQL sind alle in der Lage, ACID-Eigenschaften in Transaktionen zu unterstützen. Werfen wir einen Blick auf eine typische NoSQL-Geschichte.
Eine NoSQL-Datenbank kann verwendet werden, um ACID-Daten zu speichern. In seinem ursprünglichen Design enthielt das System nicht die „Management System“-Komponente eines DBMS.
Hat Nosql saure Eigenschaften?
Auf diese Frage gibt es keine endgültige Antwort, da sie von der konkreten Implementierung von NoSQL abhängt. Einige NoSQL-Datenbanken haben Acid-Eigenschaften, andere nicht.
Der Begriff Unteilbarkeit bezieht sich auf die Tatsache, dass eine Transaktion ohne mehrere Operationen durchgeführt werden muss. Datenkonsistenz bezieht sich auf die Tatsache, dass alle Daten in einer Datenbank genau so aufgezeichnet werden müssen, wie sie zum Zeitpunkt der Transaktion waren. Wir betrachten Isolation als einen Zustand absoluter Vertraulichkeit, der verhindert, dass andere Transaktionen unsere laufende Arbeit stören. Die Dauerhaftigkeit einer Transaktion gibt an, dass die anderen Transaktionen, die in Verbindung damit abgeschlossen wurden, weiterhin funktionieren. Der NoSQL-Ansatz zur Datenbankverwaltung widerspricht der strengen ACID-Regel . Daher sind NoSQL-Datenbanken nicht die beste Wahl für diejenigen, die in strengen Umgebungen ausgeführt werden möchten. Eine Datenbank, die den ACID-Standards entspricht, ist im Allgemeinen zuverlässiger und effizienter und bietet den Benutzern ein konsistenteres Erlebnis.
Ist Nosql Säure oder Base?
Die ACID-Eigenschaften (Atomicity, Consistency, Isolation, and Durability) einer relationalen Datenbank werden stark von den ACID-Eigenschaften (Attribution, Consistency, Isolation, and Durability) einer NoSQL-Datenbank gefolgt.
Es besteht eine starke Nachfrage nach ACID-produzierenden Datenbanken. Im Zeitalter von Big Data brauchen wir skalierbare Technologien. Eine NoSQL-Datenbank kann große und komplexe Daten effizienter verarbeiten. Im Gegensatz zu herkömmlichen RDBMSs verwenden diese Lösungen keine tabellarischen Beziehungen und stellen daher nicht die gleichen Probleme bei der Speicherung. Es ist für uns selbstverständlich, manchmal Verfügbarkeit der Konsistenz vorzuziehen. Wenn das ACID-Modell übertrieben ist, ist es vorzuziehen, eine Basiseigenschaft zu haben. Wenn Sie Konsistenz benötigen, aber eine starre Struktur bevorzugen, ist eine relationale Datenbank eine gute Wahl. Es ist nicht notwendig, für jedes System zwischen RDBMS und NoSQL zu wählen, wie es viele tun.
Die NoSQL-Datenbank ist ein neuer Datenbanktyp, der nicht auf ACID-Transaktionen angewiesen ist. (Ganz allgemein definiert als verfügbar, weicher Zustand und eventuelle Konsistenz.) Daten sind allgemein verfügbar im allgemeinen Sinne. Wird eine Anfrage nicht beantwortet, ist es möglich, dass sie abgelehnt wird. Es ist die häufigste Art von Datenbanksystem , das ACID-Transaktionen durchführt. MySQL, PostgreSQL, SQLite, SQL Server und andere Datenbankdatenbanken werden alle unterstützt. Objektorientierte Datenbanken sind eine neue Art von Datenbank, die keine ACID-Transaktionsverarbeitung erfordert. Wenn jedoch eine Antwort auf eine Anfrage empfangen wird, kann eine Antwort die Verfügbarkeit der Daten nicht garantieren. Wenn die Daten nicht beschafft werden können, werden sie irgendwann zur Verfügung gestellt. Im Soft-Zustand sind Aktualisierungen der Daten nicht dauerhaft; Diese Funktion ermöglicht kontinuierliche Datenaktualisierungen. Konsistenz ist entscheidend: Stellt sicher, dass die Daten auch bei vielen Aktualisierungen immer aktuell sind.
Mongodbs Unterstützung von Säureeigenschaften
Der Begriff Konsistenz bezieht sich darauf, wie lange die Daten bei mehreren Lesevorgängen konsistent bleiben sollen, wenn sie in die Datenbank geschrieben werden. Die Datenbank sollte garantieren können, dass sich alle gleichzeitig ausgeführten Transaktionen wie oben beschrieben nicht gegenseitig beeinflussen. Die Dauerhaftigkeit einer Datenbank zeigt an, dass sie auch nach einem Stromausfall oder einem anderen katastrophalen Ereignis funktionieren wird. Mit anderen Worten, MongoDB ist zwar keine ACID-kompatible Datenbank, unterstützt jedoch einige der wichtigsten ACID-Eigenschaften wie Atomarität und Dauerhaftigkeit.
Warum ist Mongodb kein Acid?
MongoDB ist nicht sauer, weil es keine Transaktionen unterstützt. Transaktionen sind ein grundlegender Bestandteil der Säure-Compliance . MongoDB unterstützt auch keine Fremdschlüssel, ein weiterer wichtiger Teil der Acid-Compliance.
MongoDB 4.0 fügt ACID-Transaktionen mit mehreren Dokumenten hinzu. PostgreSQL bietet native ACID-Compliance-Unterstützung , während MongoDB dies seit langem nicht mehr kann. Uns ist unklar, ob MongoDB ACID zur obersten Priorität macht oder ob sich die Benutzer darum kümmern. Version 4.0 von MongoDB enthält ACID-Transaktionsgarantien für mehrere Dokumente. Laut Eliot Horowitz macht das Dokumentenmodell ACID-Transaktionen überflüssig. Grigori Melnik, VP of Products, Server, and Enterprise Tools, glaubt, dass dies eine neuartige Art ist, in MongoDB zu schreiben. In der MongoDB-Version V4.2 sind Transaktionen über mehrere Implementierungen von Multi-Shard hinweg möglich.
Obwohl MongoDB in der Vergangenheit eine Reihe von Speicher-Engines für Daten unterstützt hat, kann nur WiredTiger für Transaktionen verwendet werden. Warum ist ACID so wichtig für MongoDB? Wir sind uns nicht sicher, was wir über das Engagement von EDB für ACID-Transaktionen sagen können, aber eines können wir Ihnen sagen: Es nimmt ACID-Transaktionen sehr ernst. Trotz des Status Nr. 7 bleibt die Tatsache bestehen, dass die Verwendung einer Standard-Abfragesprache wie SQL immer noch einen erheblichen Wert bietet. Wenn Sie mehr Anwendungen für den Zugriff auf Ihre Daten entwickeln, werden Sie gezwungen sein, sie in einem weitläufigen Muster zu erstellen, was die Komplexität erhöht. PostgreSQL ist als beliebteste Universaldatenbank weiterhin die beste Wahl.
Ist Mongodb vollständig säurekonform?
Andererseits sind Multi-Instrument-ACID-Transaktionen für Anwendungsfälle verfügbar, die dies erfordern. Sie schätzen die Flexibilität, ihre Daten so modellieren zu können, dass normalerweise keine Transaktionen mit mehreren Dokumenten erforderlich sind, dies aber möglich ist, wenn sie dies tun.
Unterstützt Nosql Acid
Nosql-Datenbanken unterstützen keine Acid-Transaktionen. Das bedeutet, dass sie nicht garantieren können, dass eine Transaktion korrekt verarbeitet wird, und dass Daten während einer Transaktion verloren gehen oder beschädigt werden können.
Nosql-Datenbanken: Das Basismodell ist langlebiger und konsistenter
Die meisten Nosql-Datenbanken unterstützen keine ACID-Eigenschaften und ziehen es vor, ein Basismodell zu verwenden, das Missbrauch standhält und langlebiger ist.