Мелешко
Е.А., Лозицкая Л.Г.
Национальный
авиационный университет
Причины и предусловия применения нереляционных баз данных
Реляционные базы данных являются наиболее
распространенным, проверенным средством для работы со значительными массивами
данных. Реляционная модель опирается на мощный математический аппарат теории
множеств и математической логики. Она предоставляет возможность
ненавигационного манипулирования данными без необходимости знания конкретной
физической организации баз данных во внешней памяти. Однако, кроме достоинств
имеются и некоторые недостатки. Например:
·
сложность структуры,
вызванная процессом нормализации;
·
низкая
производительность из-за поиска по ключу;
·
ограниченный набор типов
данных ;
·
недостаточное
естественное представление данных (в виде плоских двумерных таблиц, а не таблиц
со сложной структурой);
·
невозможность
рассмотрения данных послойно, на разных уровнях абстракции;
·
невозможность определить
набор операторов (методов), связанных с определенным типом данных: приходится
задавать операции в конкретном приложении;
·
возникновение эффекта
утраты при определенных сочетаниях данных третьей и даже второй нормальных
форм;
·
Стоимость. То есть дороговизна создания
и
поддержания базы
данных.
Реляционные базы данных
обеспечивают наилучшую смесь простоты, устойчивости, гибкости,
производительности, масштабируемости и совместимости. Правда на практике же
часто приходится поступаться этими принципами в угоду производительности. Стоит
отметить то, что существуют аналогичные системы, которые ориентированы на
какую-то одну особенность и вполне могут превысить по этим особенностям
показатели РБД. Раньше это не было большой проблемой, но сейчас это становится
актуальным. Следует отметить проблему реляционных баз данных с
масштабированием. Допустим, если нагрузка на сервер за ночь увеличилась, то
мгновенно обновить аппаратную часть вы не сможете. Реляционные БД хорошо
масштабируются только в том случае, если располагаются на единственном сервере.
Когда ресурсы этого сервера закончатся, вам необходимо будет добавить больше
машин и распределить нагрузку между ними. Тогда сложность реляционных БД
начинает играть против масштабируемости. Если вы попробуете увеличить
количество серверов не до нескольких штук, а до сотни или тысячи, сложность
возрастет на порядок, и характеристики, которые делают реляционные БД такими
привлекательными, стремительно снижают к нулю шансы использовать их в качестве
платформы для больших распределенных систем. С такими ограничениями стоит
бороться.
Для этого применяют
хранилища NoSQL(Not Only SQL)
или постреляционные базы данных .Это совсем новый термин объединяющий в себе
нереляционные хранилища данных которые не подчиняются привычным правилам
хранения данных, так называемому ACID. Обычно такие системы не имеют жесткой
структуры и не используют пересечения таблиц, по большому счету у них вообще
нет таблиц. Нереляционные базы данных можно разделить на несколько типов, в
зависимости от их масштабируемости, модели данных и запросов, а также систем
хранения данных. Единой классификации ещё нет. Следует отметить такие модели
данных:
·
Ключ=Значение
Дает наиболее
эффективную производительность, минимальную стоимость внедрения и масштабирования. Это достигается путем решения такой простой задачи,
как сохранение/чтение значений по ключу. Это самая простая форма, как для организации данных
так и для реализации, но одновременно одна из самых быстрых. Такие хранилища
позволяют хранить в памяти по определенному ключу любые данные, это может быть
просто число или текст, а может быть сериализованный объект. Ярким
представителем такой схемы является популярный сейчас memcached и менее
популярные:
CouchDB, Redis, Scalaris, BerkeleyDB , Tokyo Cabinet, Voldemort.
·
Документно-ориентированная
Каждая запись хранится как отдельный
документ, имеющий собственный набор полей, который может отличаться от
документа к документу. Популярные реализации такой модели — Lotus Notes,
CouchDB, MongoDB.
·
Колоночно-ориентированная
Данные хранятся в столбцах вместо
привычного хранения в строках. Это выгодно для различных архивов информации и
каталогов, в которых большая часть вычислений происходит над подобными
выборками данных. Представителями этой модели являются BigTable, HyperTable
и HBase, а также Cassandra.
·
Графовая
Используют вершины и ребра графа для представления
информации. Очевидно, что такая модель гораздо производительнее работает с
данными представленными в виде графов, например социальных графов. Наиболее
известные системы хранилища данных такого типа — neo4j, AllegroGraph,
ActiveRDF.
Наиболее распространенная на данный момент модель
ключ=зачение.
В последние
несколько лет, наблюдается тенденция перехода на построение БД на основе не
реляционных моделей. Причина в том, что у реляционных моделей выявляются
недостатки в построении структуры БД, что приводит к появлению уязвимостей. Поэтому
выбираются объектно-ориентированные базы данных. Причины их выбора могут быть
следующими:
1. Высокая степень
документо-ориентированности;
2. Сильная объетно-ориетнированность БД;
3. Хранилище данных легко интегрируемо с
веб-сервисами вендора;
4. Главная решаемая проблема –
масштабируемость при поиск-запросах.