Relationale Datenbanken sind im Kern auf Zuverlässigkeit und Konsistenz ausgelegt. Die Ingenieure, die sie entwickelt haben, konzentrierten sich auf ein Transaktionsmodell, das sicherstellt, dass die vier Prinzipien des ACID-Modells immer erhalten bleiben. Das Aufkommen eines neuen unstrukturierten Datenbankmodells stellt jedoch ACID auf den Kopf. Das NoSQL-Datenbankmodell verzichtet auf das stark strukturierte relationale Modell zugunsten eines flexiblen Schlüssel- / Wertspeicheransatzes. Dieser unstrukturierte Umgang mit Daten erfordert eine Alternative zum ACID-Modell: das BASE-Modell.
Grundlehren des ACID-Modells
Es gibt vier grundlegende Grundsätze des ACID-Modells:
- Das Atomizität Von Transaktionen wird sichergestellt, dass jede Datenbanktransaktion eine einzelne Einheit ist, die einen "Alles oder Nichts" -Ansatz für die Ausführung verwendet. Wenn eine Anweisung in der Transaktion fehlschlägt, wird die gesamte Transaktion zurückgesetzt.
- Relationale Datenbanken sichern auch die Konsistenz jeder Transaktion mit den Geschäftsregeln der Datenbank. Wenn ein Element einer atomaren Transaktion die Konsistenz der Datenbank unterbricht, schlägt die gesamte Transaktion fehl.
- Das Datenbankmodul wird erzwungen Isolierung zwischen mehreren Transaktionen, die zur gleichen Zeit oder nahezu gleichzeitig auftreten. Jede Transaktion tritt entweder vor oder nach jeder anderen Transaktion auf, und die Ansicht der Datenbank, die eine Transaktion am Anfang sieht, wird nur von der Transaktion selbst vor ihrem Abschluss geändert. Keine Transaktion sollte jemals das Zwischenprodukt einer anderen Transaktion sehen.
- Das endgültige ACID-Prinzip Haltbarkeitstellt sicher, dass eine festgeschriebene Transaktion durch die Verwendung von Sicherungen und Transaktionsprotokollen dauerhaft erhalten bleibt. Im Fehlerfall können diese Mechanismen verwendet werden, um festgeschriebene Transaktionen wiederherzustellen.
Grundprinzipien von BASE
NoSQL-Datenbanken hingegen umfassen Situationen, in denen das ACID-Modell übertrieben ist oder tatsächlich den Betrieb der Datenbank behindern würde. Stattdessen basiert NoSQL auf einem weicheren Modell, das als BASE-Modell bezeichnet wird. Dieses Modell berücksichtigt die Flexibilität, die NoSQL bietet, und ähnliche Ansätze für die Verwaltung und Verwaltung unstrukturierter Daten. BASE besteht aus drei Prinzipien:
- Grundverfügbarkeit. Der NoSQL-Datenbankansatz konzentriert sich auf die Verfügbarkeit von Daten, auch wenn mehrere Fehler auftreten. Dies wird durch einen sehr verteilten Ansatz für das Datenbankmanagement erreicht. Anstatt einen einzigen großen Datenspeicher zu verwalten und sich auf die Fehlertoleranz dieses Speichers zu konzentrieren, verteilen NoSQL-Datenbanken Daten über viele Speichersysteme mit einem hohen Replikationsgrad. In dem unwahrscheinlichen Fall, dass ein Ausfall den Zugriff auf ein Datensegment unterbricht, führt dies nicht notwendigerweise zu einem vollständigen Datenbankausfall.
- Weicher Zustand. BASE-Datenbanken geben die Konsistenzanforderungen des ACID-Modells fast vollständig auf. Eines der grundlegenden Konzepte von BASE ist, dass die Datenkonsistenz das Problem des Entwicklers ist und nicht von der Datenbank verarbeitet werden sollte.
- Eventuelle Konsistenz. Die einzige Anforderung an NoSQL-Datenbanken in Bezug auf Konsistenz besteht darin, dass Daten irgendwann in der Zukunft zu einem konsistenten Zustand konvergieren. Es wird jedoch nicht garantiert, wann dies geschehen wird. Dies ist eine vollständige Abweichung von der unmittelbaren Konsistenzanforderung von ACID, die die Ausführung einer Transaktion verhindert, bis die vorherige Transaktion abgeschlossen ist und die Datenbank zu einem konsistenten Zustand konvergiert.
Das BASE-Modell ist nicht für jede Situation geeignet, aber es ist sicherlich eine flexible Alternative zum ACID-Modell für Datenbanken, die keine strikte Einhaltung eines relationalen Modells erfordern.