NoSQL означает «Не только SQL» и обычно означает, что база данных не является реляционной базой данных, которая была очень популярна в последние десятилетия.
Причина, по которой NoSQL был так популярен в последние несколько лет, заключается главным образом в том, что когда реляционная база данных растет на одном сервере, ее уже не так просто использовать. Другими словами, они не очень хорошо масштабируются в распределенной системе. Все крупные сайты, которые вы упомянули Google, Yahoo, Facebook и Amazon (я мало знаю о Digg), содержат много данных и хранят их в распределенных системах по нескольким причинам. Возможно, данные не помещаются на одном сервере или существуют требования к высокой доступности .
CAP Теорема
Свойства распределенной системы могут быть описаны теоремой CAP . Из трех свойств вы можете иметь не более двух:
- C onsistency
- оступность
- толерантность к сети P artitioning
Amazon Dynamo использует Eventual Consistency, чтобы приблизиться, чтобы получить все три свойства. Бумаги Динамо: Очень Доступный ключ-значение магазин Amazon, стоит читать , когда изучение баз данных NoSQL и распределенные системы. Amazon Dynamo имеет свойства A и P.
Google использует другой подход с BigTable , который имеет свойства C и A.
Другие базы данных NoSQL
Как я писал в начале, есть много других видов баз данных NoSQL, которые разработаны для различных требований. Например, графовые базы данных, такие как Neo4j , базы данных документов, такие как CouchDB, и базы данных многомодельных / объектных объектов, такие как OrientDB .
В заключение я хотел бы сказать, что реляционные базы данных останутся популярными. Они очень гибкие и ремонтопригодные. Но они не всегда лучший выбор.