пятница, 31 января 2014 г.

Что такое NoSQL базы данных?

NoSQL (not only SQL), в информатике — термин, обозначающий ряд подходов, направленных на реализацию хранилищ баз данных, имеющих существенные отличия от моделей, используемых в традиционных реляционных СУБД с доступом к данным средствами языка SQL. Применяется к базам данных, в которых делается попытка решить проблемы масштабируемости и доступности за счёт атомарности и согласованности данных.
Вот что говорит Wikipedia про NoSQL. 



По сути NoSQL это компьютерный термин, который используется для описания систем управления базами данных, которые отличаются от классических реляционных баз данных. Базы данных NoSQL имеют горизонтальную масштабируемость с открытым исходным кодом, и они абсолютно бесплатны. 
Когда веб-сайты начали вмещать большие объемы данных, то резко стала ощущаться низкая производительность в некоторых приложениях при использовании традиционных баз данных, так появилась необходимость в новых решениях. С тех пор развитие баз данных с открытым исходным кодом NoSQL начало набирать свои обороты. Конференция, проходившая в Атланте в 2009 году, считается отправной точкой для начала продвижения баз данных NoSQL.

NoSQL это новое поколение систем управления базами данных, которые отличаются от традиционных систем управления базами данных по нескольким ключевым направлениям. Для начала, базы данных NoSQL не являются реляционными. Это означает, что они не требуют использования соединений и таким образом могут обрабатывать большие объемы данных, даже в масштабе интернета. Вот почему базы данных NoSQL являются необходимостью для веб приложений, работающих с большими объемами трафика и генерируемого контента для пользователей. NoSQL является отличным решением для таких сайтов, как Google, Digg, Facebook, Twitter и многих других. Кстати, Digg уже реализован на базе NoSQL, когда она предоставил 3 ТБ своими зелеными значками.

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

Другие преимущества систем управления базами данных NoSQL включает прозрачный шардинг, параллельную обработку и автоматическое разрешение конфликтов. Базы данных NoSQL очень быстры, децентрализованы и очень доступны.

Но, несмотря на все перечисленные достоинства, архитектура баз данных NoSQL имеют некоторые недостатки. Основным из них является слабая синхронизация данных. Распределение данных по нескольким системам позволяет обрабатывать очень значительные объемы данных и получить более высокую пропускную способность. Тем не менее, эта последовательность влияет на согласованность передачи данных. Некоторые решения NoSQL не поддерживают операции, чтобы уменьшить согласованность требований и уменьшить необходимость в синхронизации. Хотя этот подход работает, когда последовательность не является самым важным аспектом, но он не пригоден во многих других случаях. Вот почему большинство приложений могут применять NoSQL только для ограниченного использования, например, кэширования и ускорения для конкретной таблицы.

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

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

Комментариев нет:

Отправить комментарий