NoSQL steht für "Nicht nur SQL" und bedeutet normalerweise, dass es sich bei der Datenbank nicht um eine relationale Datenbank handelt, die in den letzten Jahrzehnten sehr beliebt war.
Der Grund, warum NoSQL in den letzten Jahren so beliebt war, liegt hauptsächlich darin, dass es nicht mehr so einfach ist, eine relationale Datenbank zu verwenden, wenn sie aus einem Server heraus wächst. Mit anderen Worten, sie lassen sich in einem verteilten System nicht sehr gut skalieren. Alle großen Websites, auf denen Sie Google, Yahoo, Facebook und Amazon erwähnt haben (ich weiß nicht viel über Digg), enthalten viele Daten und speichern diese aus verschiedenen Gründen in verteilten Systemen . Es kann sein, dass die Daten nicht auf einen Server passen oder dass Anforderungen an die Hochverfügbarkeit bestehen .
CAP-Satz
Die Eigenschaften eines verteilten Systems können durch das CAP-Theorem beschrieben werden . Von den drei Eigenschaften können Sie höchstens zwei haben:
- C onsistency
- Eine Verfügbarkeit
- Toleranz gegenüber Netzwerk- P- Partitionierung
Amazon Dynamo verwendet Eventual Consistency , um alle drei Eigenschaften abzurufen. Das Papier Dynamo: Der hochverfügbare Key-Value-Store von Amazon ist eine Lektüre wert, wenn Sie sich mit NoSQL-Datenbanken und verteilten Systemen befassen. Amazon Dynamo verfügt über die Eigenschaften A und P.
Google geht mit BigTable einen anderen Weg , der die Eigenschaften C und A hat.
Andere NoSQL-Datenbanken
Wie ich am Anfang schrieb, gibt es viele andere Arten von NoSQL-Datenbanken, die für unterschiedliche Anforderungen ausgelegt sind. ZB Graphendatenbanken wie Neo4j , Dokumentendatenbanken wie CouchDB und Multimodel- / Objektdatenbanken wie OrientDB .
Abschließend möchte ich sagen, dass relationale Datenbanken weiterhin beliebt sind. Sie sind sehr flexibel und wartbar. Aber sie sind nicht immer die beste Wahl.