2010-11-23 2 views
3

Там, похоже, много новых баз данных типа «NoSQL». Некоторые из популярных - это CouchDB, Cassandra и MongoDB.Каковы различия между базами данных NoSQL и чем они отличаются от традиционных реляционных баз данных?

В чем разница между такими базами данных и как они отличаются от традиционных реляционных баз данных? Каковы преимущества и недостатки выбора NoSQL DBs над SQL-базами данных?

+0

Они не лучше, они решают другую проблему. Этот вопрос довольно оскорбителен в его названии. – HLGEM

+0

Я выделил основные различия между SQL и NoSQL в [этом ответе] (http://stackoverflow.com/questions/4255895/why-googles-bigtable-referred-as-a-nosql-database/4256209#4256209). –

ответ

3

Согласен, вопрос «не тот, который лучше», это «какое решение или набор решений лучше всего подходит для этой конкретной ситуации».

NoSQL охватывает множество различных технологий хранения, таких как CouchDB, MongoDB, Cassandra и Solr.

CouchDB and MongoDB хранить многомерные структуры данных. MongoDB также не имеет схемы. Cassandra - это механизм хранения на основе столбцов для быстрого поиска, а Solr помогает решить другие проблемы, такие как огранка.

NoSQL просто ссылается на любое хранилище, которое не взаимодействует с помощью SQL-запросов.

4

Термин NoSQL охватывает множество различных подходов к хранению данных: от простейшего хранилища ключей/значений до сложных баз данных документов. Это запоминающееся звуковое слово, но не очень показательное ИМХО.

Для быстрого интро вы могли бы взглянуть на the Wikipedia entry for NoSQL

1

Они не лучше. NOSQL не предполагает каких-либо новых инноваций или специальных возможностей. NOSQL относится только к набору программных продуктов, которые используются для определенных типов приложений, но не обязательно имеют много общего с друг другом. NOSQL не должен подразумевать нереляционную базу данных.

0

Folks, его горячие дебаты Теперь дни, SQL или NoSQL, Хотя некоторые восхищаются элегантность с точки зрения производительности баз данных NoSQL в то время как другие хотят жить с наследием SQL или СУБД. Хотя каждый из них имеет свои достоинства и недостатки, я попытался вкратце сравнить его с некоторыми пунктами.

While RDBMS uses relations and joins to make data simpler in database tables  
NoSQL don't use joins for performance. 
NoSQL scales freely when we talk in terms of schema and data, while its very tough to scale a RDBMS if data grows. 
There are restriction in size of data in RDBMS in terms of data-types capability, files of any size can be used in NoSQL databases. 
Data integrity enforcement comes to play only in RDBMS not in NoSQL databases. 
ACID is not the cup of tea for NoSQL databases but for RDBMS. 
RDBMS supports complex transactions whereas NoSQL keeps mum for transactions. 
NoSQL does not support constraints and validations while its the basic ingredient in RDBMS. 
Data is not structured in NoSQL but is highly structured in form of tables in RDBMS. 

Все зависит от характера и потребности проекта в использовании SQL или NoSQL.

+0

Very Nice Подробное описание –

0

RDBMS - это полностью структурированный способ хранения данных. Хотя NoSQL является неструктурированным способом хранения данных. И еще одно главное отличие состоит в том, что объем хранимых данных в основном зависит от физической памяти системы. Хотя в NoSQL у вас нет таких ограничений, поскольку вы можете масштабировать систему по горизонтали.

Вы обнаружите, что база данных NoSQL имеет несколько общих характеристик. Их можно условно разделить на несколько категорий:

ключа/значение магазинов Bigtable вдохновленных баз данных (на основе бумаге Google Bigtable) Dynamo вдохновленных баз распределенных баз данных баз данных документов

0

Ну, Основное различие в обсуждается ниже. Конечно, теперь Нет-SQL Концепции, получающие популярность день за днем. Но все же мы должны использовать на основе потребностей или требований проекта.

1) Базы данных SQL в основном называются RDBMS. тогда как база данных NoSQL в основном называется Не реляционная или База данных.

2) RDBMS будет следовать ACID свойства Atomcity т.е., согласованность, изолированность, Durability.But в No-Sql это следующие CAP (последовательность, доступность и порционирования).

3) В SQL мы храним данные в табличном формате only.But в No-SQL она использует коллекцию ключ-значение пары, документы, базы данных графа или широкой колонке stores.So No-SQL является схемы бесплатно и Он может обрабатывать структурированные, полуструктурированные и неструктурированные данные. Но SQL не является бесплатной схемой. SQL имеет Предварительно определенная схема .i.e В SQL, если у вас есть таблица и в этом первом столбце есть тип данных int, тогда вы не можете сохранить строку или значения Float.

4) RDBMS следует SQL (язык структурированных запросов) для определения и манипулирования данными, что является очень мощным. В базе данных NoSQL запросы сосредоточены на сборе документов. Иногда его также называют UnQL (Язык неструктурированных запросов). Синтаксис использования UnQL варьируется от базы данных к базе данных. Также базы данных SQL подходят для сложной среды с интенсивным запросом, тогда как базы данных NoSQL не подходят для сложных запросов. На высоком уровне NoSQL не имеет стандартных интерфейсов для выполнения сложных запросов, а сами запросы в NoSQL не так сильны, как язык запросов SQL.

Для Eg..Take Social Eng. сайты, мы загружаем фотографии/видеоролики/Music/Album..etc.Для того, что мы получаем комментарии, ответы на комментарии, например..etc.Here мы можем получить числа, специальные символы .., поэтому почти мы не можем предсказать, что может быть ответ или комментарии. В этом случае мы ищем 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: "[email protected] smile symbol" 
} 
{ 
    date: ISODate("2015-09-17T12:33:02.132Z"), 
    text: "...Oh my god.." 
    } 
] 
} 

В Выше, если мы идем на SQL мы наклоняем комментарии магазина (текст выше) в столбце only.we нужно хранить на основе type.So мы в конечном итоге с большим сложным запросом с номером объединений с различными таблицами . Но SQL хорош для транзакций.

5) В большинстве типичных ситуаций, базы данных SQL являются Вертикально масштабируемой. Вы можете управлять увеличением нагрузки за счет увеличения количества процессоров, ОЗУ, SSD и т. Д. На одном сервере. С другой стороны, базы данных No-SQL: Горизонтально масштабируемый. Вы можете просто добавить еще несколько серверов в инфраструктуру базы данных No-SQL для обработки большого трафика.

6) базы данных SQL лучше всего подходит для тяжело нагруженных транснациональных типа приложений, так как она более стабильна и обещает неделимость, а также целостности данных. Хотя вы можете использовать NoSQL для целей транзакций, он по-прежнему не сопоставим и достаточно стабилен при высокой нагрузке и сложных транзакционных приложениях.

7) Примеры для No-SQL - это MangoDB, Cassandra ..etc while for SQL - это MySQL, SQL Server и т. Д.

Смежные вопросы