NoSQL - это общий термин для всех баз данных, которые отличаются от «стандартных» баз данных SQL, таких как MySQL, Microsoft SQL Server и PostgreSQL.
Все эти «стандартные» базы данных SQL - это реляционные базы данных,использовать язык запросов SQL и придерживаться свойств ACID .Эти свойства в основном сводятся к согласованности .
База данных NoSQL отличается тем, что она не поддерживает одну или несколько из этих ключевых функций так называемых «баз данных SQL»:
- Согласованность
- Реляционные данные
- Язык SQL
Большинство этих функций идут рука об руку.
Согласованность
Согласованность - это то, где большинство баз данных NoSQL отличаются от баз данных SQL.Вы можете извлечь плагин из базы данных SQL, и он позаботится о том, чтобы ваши данные оставались согласованными и не поврежденными.Базы данных NoSQL, как правило, жертвуют этой согласованностью для лучшей масштабируемости.Google Bigtable также делает это.
Реляционные данные
Базы данных SQL вращаются вокруг нормализованных, реляционных данных.База данных гарантирует, что эти отношения остаются действительными и последовательными, независимо от того, что вы на них бросаете.Базы данных NoSQL обычно не поддерживают отношения, потому что они не поддерживают согласованность для обеспечения этих отношений.Кроме того, реляционные данные ухудшают производительность, когда данные распределены по нескольким серверам.
Исключением являются графовые базы данных .Они считаются базами данных NoSQL, но содержат реляционные данные.Фактически, это то, о чем они все говорят!
Язык SQL
Язык SQL был разработан специально для реляционных баз данных, так называемых «баз данных SQL».Поскольку большинство баз данных NoSQL сильно отличаются от реляционных баз данных, они не нуждаются в SQL.Кроме того, некоторые базы данных NoSQL имеют функции, которые просто не могут быть выражены в SQL, поэтому требуется другой язык запросов.
И последнее, но не менее важное, NoSQL - это просто модное слово .В основном это означает «все, кроме старого и надежного сервера MySQL на чердаке», который включает в себя много альтернативных механизмов хранения.Даже простой текстовый файл можно считать решением NoSQL:)