Что ж, основные различия обсуждаются ниже. Конечно, сейчас No-SQL концепции становятся популярными день ото дня. Но все же, какой из них нам нужно использовать в зависимости от потребностей или требований проекта.
1) Базы данных SQL в основном называются RDBMS . тогда как база данных NoSQL в первую очередь называется нереляционной или распределенной базой данных.
2) СУБД будет следовать КИСЛОТУ свойств, таких как Atomcity, Consistency, Isolation, Durability. Но в No-Sql она соответствует CAP (Согласованность, доступность и порционирование).
3) В SQL мы храним данные только в табличных форматах. Но в No-SQL он использует коллекцию пар ключ-значение, документы, базы данных графиков или хранилища с широкими столбцами. Так что No-SQL равен Схема свободна и может обрабатывать структурированные, полуструктурированные и неструктурированные данные.
Но SQL не является схемой free.SQL имеет Предопределенную схему .i.e В SQL, если у вас есть таблица и в этом первом столбце тип данных int, вы не можете хранить строковые значения или значения с плавающей запятой.
4) СУБД следует SQL (язык структурированных запросов) для определения и обработки данных, что является очень мощным. В базе данных NoSQL запросы ориентированы на сбор документов. Иногда его также называют UnQL (неструктурированный язык запросов). Синтаксис использования UnQL варьируется от базы данных к базе данных. Также базы данных SQL хорошо подходят для среды со сложными запросами, тогда как базы данных NoSQL не подходят для сложных запросов. На высоком уровне NoSQL не имеет стандартных интерфейсов для выполнения сложных запросов, а сами запросы в NoSQL не так мощны, как язык запросов SQL.
Для напр. Возьми Social Eng. сайты, мы загружаем фотографии / видео / музыку / альбом .. и т.д. Для этого мы получаем комментарии, ответы на комментарии, например ... и т.д. Здесь мы можем получить числа, специальные символы ..., поэтому почти мы не можем предсказать, что может быть ответ или комментарии. В этом случае мы используем No-SQL в документированном виде, как показано ниже, для хранения комментариев.
{
user_id: ObjectID("65f82bda42e7b8c76f5c1969"),
update: [
{
date: ISODate("2015-09-18T10:02:47.620Z"),
text: "Nice picture."
},
{
date: ISODate("2015-09-17T13:14:20.789Z"),
text: "1234@some smile symbol"
}
{
date: ISODate("2015-09-17T12:33:02.132Z"),
text: "...Oh my god.."
}
]
}
Выше, если мы пойдем на SQL, мы не сможем хранить комментарии (текст выше) только в столбце. Нам нужно хранить данные на основе типа. Так что в итоге мы получим большой сложный запрос с количеством объединений с разными таблицами. Но SQL хорошо для сделок.
5) В большинстве типичных ситуаций базы данных SQL Вертикально масштабируемые . Вы можете управлять увеличением нагрузки, увеличивая CPU, RAM, SSD и т. Д. На одном сервере. С другой стороны, базы данных No-SQL Горизонтально масштабируемые . Вы можете просто добавить еще несколько серверов в инфраструктуру базы данных No-SQL для обработки большого трафика.
6) Базы данных SQL лучше всего подходят для сверхмощных транснациональных приложений типа , так как они более стабильны и обеспечивают атомарность и целостность данных. Хотя вы можете использовать NoSQL для целей транзакций, он все еще не сопоставим и недостаточно стабилен при высокой нагрузке и для сложных транзакционных приложений.
7) Примерами для No-SQL являются MangoDB, Cassandra..etc, а для SQL - MySQL, SQL Server и т. Д.