С каждым днем разнообразие приложений, написанных для решения экономических задач, становится все больше и соответственно растет количество потоков данных циркулирующих на предприятиях, что в свою очередь приводит к увеличению нагрузки на сервер базы данных. Наиболее распространенным в использовании на сегодняшний день являются реляционные базы данных из-за их простоты, гибкости, устойчивости и совместимости с другими программными продуктами. Но стоит отметить, что по своей структуре реляционные базы данных сложны из-за большого количества связей между ее элементами, что приводит к снижению эффективности использования.
В реляционной базе данных информация представляется в виде двумерных таблиц. Каждая, из которых представляет собой двумерный массив. При помощи языка SQL можно выполнить запросы. Это своего рода SQL-инструкции, которые задают правила для получения выходных данных. Иными словами запрос – это манипулирование базами данных.
Единственный недостаток реляционной базы данных – это ее масштабируемость. Требование к масштабируемости, т.е способности системы увеличивать производительность труда при добавлении дополнительных ресурсов (увеличение объема информации), могут быстро меняться и расти. И это главная проблема.
Различают два способа масштабирования: вертикальное и горизонтальное. Вертикальное масштабирование подразумевает увеличение производительности (процессора, памяти, диска) в рамках одного узла (хоста). Горизонтальное масштабирование – рост производительности за счет добавлении ещё одного узла (хоста). Реляционный тип БД существует уже более 30 лет и за этот промежуток времени она все еще остается самой распространенной в использовании.
Если реляционная БД находится на единственном сервере, то масштабировать ее можно лишь одним способом, а именно увеличить ресурсы этого сервера путем добавления дополнительных машин и распределения нагрузки между ними. Но если увеличить количество машин до сотен или даже до тысяч, то в данной ситуации использование реляционной базы данных не целесообразно, в виду того, что РБД начнет давать сбои и резко снизится ее работоспособность из-за того, что она находится на большом количестве серверов. И именно это главный недостаток структуры реляционных баз данных, который до сих пор не устранили. В данной ситуации единственный вариант решения этой проблемы является переход на другой тип БД.
Одним из возможных решений данной проблемы является использование типа баз данных под названием ключ-значение (key-value store). Рассматриваемый тип основан на языке NoSQL (частичное отрицание SQL и реляционной модели). Хранилища ключ-значение основаны на работе с записями. Это означает, что информация, относящаяся к записи хранится вместе с ней, а именно в таблице. Именно поэтому потребность в нормализации и создании связей между таблицами отпадает. Главной особенностью типа ключ-значение является внутренняя простота, чем не может похвастаться реляционный тип. Но стоит отметить что даже в хранилищах типа ключ-значение, отношения (связи) необходимы для того чтобы обеспечить целостность данных, хотя обеспечение целостности целиком ложиться на приложение.
Хранилища типа ключ-значение имеют следующие достоинства:
Легко масштабируемы и производительны из-за своей простоты
Нет необходимости в SQL запросах
Возможность использования облачных серверов (онлайн хранилище, в котором данные хранятся на многочисленных серверах)
Уменьшенное время разработки из-за более естественного отображения объектов
Имеются также и недостатки:
Целостность данных на низком уровне
Плохая совместимость
Примером использования типа баз данных ключ-значение являются облачные хранилища. Облачные хранилища (сервера) – это онлайн хранилище, в котором данные хранятся на многочисленных серверах. Преимущество облачных хранилищ состоит в том, что клиенту нет необходимости заниматься приобретением и обслуживанием собственной инфраструктуры по хранению данных, что, в конечном счете, уменьшает общие издержки производства. Есть большое количество таких сервером как Google Drive, SkyDrive, Drop Box и т.д.
В середине 2013 года разработчики одного из наиболее популярных-сервиса «Яндекс Диск» провели анализ 4 наиболее известных сервером и определили их достоинства, особенности и недостатки, оценивая по следующим критериям используя 100 бальную систему [1]:
Максимальный объем хранимой информации
Срок хранения информации
Защищенность (защита информации пользователя от слежки правительства)
Функциональность (работа с файлами в браузере, программные клиенты для смартфонов, простота использования)
Сервис |
Google Drive |
SkyDrive |
iCloud |
Drop Box |
Максимальный объем, Гбайт |
200 |
100 |
50 |
100 |
Срок хранения |
неограничен |
неограничен |
30 дней |
неограничен |
Защищенность |
100 |
80 |
80 |
30 |
Функциональность |
100 |
100 |
80 |
80 |
На основе анализа был выявлен лидер, по всем показателям - это Google Drive. Так же стоит уделить внимание облачному хранилищу от компании Microsoft под названием Sky Drive. Остальные кандидаты (iCloud и Drop Box) являются менее эффективными для использования. Основной недостаток iCloud – это срок хранения и максимальный объем информации (30 дней, 50 Гбайт). А облачное хранилище Drop Box является наиболее незащищенным по сравнению с остальными.
В итоге, прежде чем принять решение о выборе типа баз данных нужно четко определиться с требованиями к базам данных. Стоит помнить обо всех недостатках и рисках нереляционных баз данных. Если определяющим фактором при выборе БД является масштабируемость, то лучше выбрать нереляционные БД на основе типа ключ-значение. Если масштабируемость-это не решающий критерий, то вам следует выбрать реляционную БД так как она наиболее удобна и позволяет лучше спроектировать модель, иными словами сделать более логическую структуру, которая будет полностью отражать хранимые данные.