Если вы когда-либо работали с базой данных, вы, вероятно, работали с реляционной базой данных. Примерами могут быть база данных Access, SQL Server или MySQL. Когда вы думаете о таблицах в таких базах данных, вы обычно думаете о сетке, как в Excel. Вы должны назвать каждый столбец таблицы базы данных и указать, являются ли все значения в этом столбце целыми числами, строками и т. Д. Наконец, когда вы хотите посмотреть информацию в этой таблице, вы должны использовать язык, называемый SQL.
Новая тенденция формируется вокруг нереляционных баз данных, то есть баз данных, которые не попадают в аккуратную сетку. Вам не нужно указывать, какие вещи являются целыми числами, строками, логическими значениями и т. Д. Эти типы баз данных более гибкие, но они не используют SQL, потому что они не структурированы таким образом.
Проще говоря, именно поэтому они являются базами данных "NoSQL".
Преимущество использования базы данных NoSQL заключается в том, что вам не нужно заранее точно знать, как будут выглядеть ваши данные. Возможно, у вас есть таблица контактов, но вы не знаете, какую информацию вы хотите хранить о каждом контакте. В реляционной базе данных вам нужно создать такие столбцы, как «Имя» и «Адрес». Если позже вы узнаете, что вам нужен номер телефона, вы должны добавить столбец для этого. Нет необходимости в таком планировании / структурировании в базе данных NoSQL. Есть также потенциальные преимущества масштабирования, но это немного спорный, поэтому я не буду делать никаких претензий есть.
Недостатками баз данных NoSQL на самом деле является отсутствие SQL. SQL прост и вездесущ. SQL позволяет легче нарезать и разрезать данные для получения агрегированных результатов, в то время как в базах данных NoSQL это немного сложнее (вероятно, вы будете использовать такие вещи, как MapReduce, для которых есть некоторая кривая обучения).