NoSQL 101

Autor: Judy Howell
Erstelldatum: 26 Juli 2021
Aktualisierungsdatum: 18 Juni 2024
Anonim
How do NoSQL databases work? Simply Explained!
Video: How do NoSQL databases work? Simply Explained!

Inhalt


Wegbringen:

Nicht relationale oder NoSQL-Datenbanken sind zu einem herausragenden alternativen Modell für Datenbankmanager geworden, da sie billiger, flexibler, weniger verwaltungsintensiv und skalierbarer sind.

Relationale Datenbanken dominieren seit vielen Jahren das Datenbankmanagement. Aber nicht mehr. Nicht relationale oder NoSQL-Datenbanken sind heute ein wichtiges alternatives Modell für Datenbankmanager. Warum? Sie sind billiger, flexibler, erfordern weniger Management und sind skalierbarer (was mit dem Wachstum von Big Data immer wichtiger wird).

Werfen Sie hier einen einführenden Blick auf diese wachsende Form der Datenbankverwaltung.

Hintergrundinformationen zur Datenbankverwaltung

Eine Datenbank ist eine Sammlung von Datensätzen in organisierter Form. Um diese Daten zu speichern, abzurufen und zu bearbeiten, benötigen wir eine Struktur. Diese Struktur kann von einem einfachen Dateisystem bis zu einem ausgeklügelten Datenbankverwaltungssystem (DBMS) reichen. Beide haben ihre eigenen Vor- und Nachteile. Ein DBMS wird jedoch normalerweise aus folgenden Gründen bevorzugt:


  • Ein DBMS kann umfangreiche Datenmengen verwalten.
  • Die Funktionen zur Sicherung, Wiederherstellung und Wiederherstellung von Daten werden in einem Dateisystem häufig nicht unterstützt.
  • In einem DBMS wird auf die Redundanz der Daten geachtet, wodurch der Missbrauch des Speichers verhindert wird.
  • Eine Datenbank kann besser mit Sicherheitsmaßnahmen ausgestattet werden, um den Zustand und die Integrität der gespeicherten Daten zu erhalten.
  • Ein DBMS unterstützt den Mehrbenutzerzugriff und kümmert sich um Parallelitätsprobleme.
  • Ein DBMS bietet mehrere Benutzeransichten sowie mehrere Abstraktionsebenen.
  • Ein DBMS behält die ACID-Kerneigenschaften beim Abrufen und Aktualisieren von Daten bei.

Bei den meisten modernen Datenbanksystemen handelt es sich um relationale Datenbankverwaltungssysteme (RDBMS), bei denen sich die Daten in Tabellen mit minimaler Duplizierung befinden. Wie der Name schon sagt, stellt eine relationale Datenbank Beziehungen zwischen Daten her und ermöglicht es, dieselben Daten auf viele verschiedene Arten aus den Datenbanken zu extrahieren und in ihnen anzuzeigen. Diese Steuerung ist jedoch mit Kosten verbunden. (Weitere Hintergrundinformationen finden Sie unter Eine Einführung in Datenbanken.)


Was ist NoSQL?

NoSQL ist ein Datenbanktyp, der nicht dem weit verbreiteten relationalen Datenbankverwaltungsmodell entspricht. Mit anderen Worten, NoSQL-Datenbanken basieren nicht in erster Linie auf Tabellen, und im Gegensatz zu RDBMS verwenden sie SQL nicht zum Manipulieren von Daten - daher der Name. NoSQL wurde als Unterstützung für SQL erstellt und nicht als Ersatz. Es basiert auf einem weniger strengen Modell, das im Wesentlichen keinem festen Schema folgt. Es kann auch sein, dass es sich nicht an die ACID-Eigenschaften hält, und es gibt kein Konzept wie JOIN, anders als in den meisten RDBMS.

Eine großartige Definition von NoSQL stammt von nosql-database.org, das den Begriff wie folgt definiert:

Datenbanken der nächsten Generation befassen sich hauptsächlich mit folgenden Aspekten: Sie sind nicht relational, verteilt, quelloffen und horizontal skalierbar. Die ursprüngliche Absicht waren moderne Web-Scale-Datenbanken. Oft gelten weitere Merkmale, wie z. B.: schemafreie, einfache Replikationsunterstützung, einfache API, eventuell konsistentes / BASE (nicht ACID), eine große Datenmenge und vieles mehr.

Die Geschichte und Wurzeln von NoSQL

Nur um ein bisschen verwirrender zu werden, gibt es ein RDBMS namens NoSQL. Es hat seine Wurzeln in den 1990er Jahren und wurde von Carl Strozzi erstellt. Das ist eigentlich ganz anders; Es ist ein relationales System, aber ohne eine SQL-Schnittstelle. Strozzi hat kommentiert, dass das, was derzeit als NoSQL bekannt ist, eigentlich "NoREL" oder etwas in diesem Sinne hätte heißen sollen.

Keine Bugs, kein Stress - Ihre schrittweise Anleitung zur Erstellung lebensverändernder Software, ohne Ihr Leben zu zerstören

Sie können Ihre Programmierkenntnisse nicht verbessern, wenn sich niemand um die Softwarequalität kümmert.

Die moderne Bewegung von NoSQL, mit der wir uns befassen, dreht sich um IT-Giganten wie Google und Amazon und deren Bedarf an einer Datenbank, die mit den enormen Datenmengen, die sie produzierten, skaliert werden kann. Das Schlagwort dafür hat sich natürlich zu so genannten Big Data entwickelt, von denen NoSQL einen großen Teil ausmacht. (Weitere Informationen finden Sie unter Die Entwicklung von Big Data.)

In den 2000er Jahren, aber insbesondere in der letzten Hälfte des Jahrzehnts, war fast jedes große Webunternehmen auf die eine oder andere Weise mit NoSQL befasst, und zwar mit Datenbankverwaltungssystemen wie BigTable, CouchDB, Amazon Dynamo, MongoDB , Cassandra und Hadoop, unter vielen, vielen anderen (siehe eine Geschichte hier und eine großartige Auflistung hier). Was den NoSQL-Namen auslöste, war seine Verwendung durch einen Rackspace-Mitarbeiter namens Eric Evans im Jahr 2009. Er verwendete den Namen für ein Treffen zu "Open Source, verteilten, nicht relationalen Datenbanken". Danach blieb der Name einfach hängen.

Warum NoSQL verwenden?

Warum verwenden wir überhaupt NoSQL, wenn wir unsere guten, alten RDBMSs haben? Die Antwort ist, dass in einigen Fällen ein RDBMS nicht ausreicht, während es in anderen Fällen übertrieben ist. Hier einige Nachteile relationaler Datenbanken, die NoSQL zu einer besseren Lösung machen können:

  • Eine Anwendung muss möglicherweise Daten in einem hierarchischen Netzwerk oder in einer Baumstruktur speichern.
  • Möglicherweise möchten Sie nur die Elemente der Anwendung in einem beständigen Speicher konsistent speichern, aber RDBMS kann in Bezug auf Kosten und Ressourcen ziemlich teuer sein.
  • NoSQL eignet sich am besten, wenn die Anwendungsentitäten eine Abfragefunktion benötigen.
  • RDBMS schlägt möglicherweise fehl, wenn Sie an einer verteilten Datenbank oder einer cloudbasierten Anwendung arbeiten, um Verfügbarkeit und Beständigkeit zu gewährleisten.
  • NoSQL erfordert keine starre Schemadefinition oder Speicherung von Metadaten, um die vorhandenen Daten zu ergänzen.

Der Schlüssel zum Verständnis ist, dass es einen Bedarf gab, der von den massiven Datenmengen und der Änderung der Art und Weise, wie Datenbanken benötigt wurden, getrieben wurde. Als das Web sozialer wurde, ging es nicht nur um Lesen, sondern auch um Schreiben und wie man das skaliert. In diesen Fällen ist NoSQL einem traditionelleren RDBMS überlegen.

Das Fazit bei NoSQL

Auf den Spuren von Internetgiganten setzen viele Unternehmen und Organisationen, die mit massiven Datenmengen zu tun haben, NoSQL zusammen mit ihren vorhandenen DBMS ein, um die Leistung und Effizienz zu steigern. Wenn Sie mit hochvolumigen Webanwendungen arbeiten, benötigen Sie wahrscheinlich ein tiefes Verständnis von NoSQL.

Für kleinere Unternehmen ist der Wert von NoSQL nicht ganz so hoch, zumal die Implementierung schwerwiegende Herausforderungen mit sich bringt, darunter mangelnder Support, Fachwissen, Verwaltung, Analyse und Business Intelligence. Tatsache ist, dass ein durchschnittliches kleines Unternehmen nicht jeden Tag Petabytes an Daten erzeugt. Die Popularität von NoSQL nimmt jedoch zu und wird wahrscheinlich auch weiterhin zu einem immer wichtigeren Werkzeug und einer immer wichtigeren Fähigkeit für Datenbankmanager. Es tut also nicht weh, zumindest die Grundlagen zu kennen.