Базы данных NoSQL: введение в неструктурированные базы данных

Светлана Комарова

Светлана Комарова

Автор статьи. Системный администратор, Oracle DBA. Информационные технологии, интернет, телеком. Подробнее.

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

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

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

Термин "NoSQL" выбран очень неудачно. Он относится ко многим новым нереляционным базам данных, таким как Cassandra, Mongo, Neo4J и Riak. Они содержат неструктурированные данные, работают на кластерах и обеспечивают компромисс между традиционной согласованностью и другими полезными свойствами. Сторонники баз данных NoSQL утверждают, что могут создавать намного более высококачественные, намного лучше масштабируемые и легче программируемые системы. Можно ли это считать предзнаменованием конца эпохи реляционных баз данных или просто еще одним претендентом на трон? Наш ответ: "Ни тем ни другим".

Реляционные базы данных - это мощный инструмент, который будет использоваться еще много десятилетий, но в результате происходящих изменений эти базы будут не единственными. С нашей точки зрения, мы вступаем в эру многовариантной персистентности (Polyglot Persistence), в которой предприятия и даже отдельные приложения будут использовать для управления данными несколько технологий. В результате архитекторы баз данных будут вынуждены осваивать эти технологии и оценивать их в соответствии со своими потребностями. Если бы мы так не думали, то не стали бы тратить время и силы на эту статью.

 

Чем интересны базы данных NoSQL

Есть две причины, по которым люди рассматривают возможность использовать базы данных NoSQL.

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

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

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

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

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

 

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

Мы следуем основным принципам классификации баз данных NoSQL по их моделям данных. Ниже приведена таблица, содержащая четыре модели данных и базы данных, соответствующие этим моделям. Это не исчерпывающий список. Приведены лишь основные базы данных.  Мы стремились выбрать репрезентативный инструмент для каждой категории баз данных. Говоря о конкретных примерах, мы имеем в виду всю категорию, даже если рассматриваемая база данных является уникальной и не допускает обобщений. Мы рассмотрели по одному примеру из категорий баз данных типа "ключ-значение", документных баз данных, семейств столбцов и графовых баз данных. Там, где это было возможно, мы упоминали другие продукты, которые могут удовлетворить конкретные потребности пользователей.

Эта классификация по моделям данных является полезной, но грубой. Границы между разными моделями данных, например, между базами данных типа "ключ-значение" и документыми ("Модели "ключ-значение" и документные модели данных"), часто размыты. Многие базы данных не укладываются в рамки одной категории; например, база данных OrientDB одновременно относится к категориям документных и графовых баз данных.

 

Пример базы данных Модель данных
BerkeleyDB Key-Value ("Базы данных типа "ключ-значение") Memcached
Projecr Voldemorr
Redis
Riak
CouchDB Documenr ("Документные базы
данных")
MongoDB
OrientDB
RavenDB
Terrastore
Amazon SimpleDB Column-Family
("Семейства столбцов")
Cassandra
HBase
HyperraЫe
 FlockDB Graph ("Графовые базы данных") HyperGraphDB
Infinire Graph
Neo4J
OrienrDB

Вас заинтересует / Intresting for you:

Как правильно выбрать базу дан...
Как правильно выбрать базу дан... 4770 просмотров Administrator SU Sun, 07 Oct 2018, 08:31:24
База данных как объект правово...
База данных как объект правово... 768 просмотров Денис Wed, 27 Mar 2019, 03:16:24
Агрегированные модели и NoSQL ...
Агрегированные модели и NoSQL ... 5033 просмотров Денис Fri, 05 Feb 2021, 16:17:09
Перенос корпоративных баз данн...
Перенос корпоративных баз данн... 1281 просмотров Дэн Fri, 27 Sep 2019, 07:52:18
Войдите чтобы комментировать

Gwen аватар
Gwen ответил в теме #9281 14 нояб 2018 10:39
Спасибо за отличный обзорчик NoSQL технологии!