Мелешко Е.А., Лозицкая Л.Г.

Национальный авиационный университет

Причины и предусловия применения нереляционных баз данных

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

·        сложность структуры, вызванная процессом нормализации;

·        низкая производительность из-за поиска по ключу;

·        ограниченный набор типов данных ;

·        недостаточное естественное представление данных (в виде плоских двумерных таблиц, а не таблиц со сложной структурой);

·        невозможность рассмотрения данных послойно, на разных уровнях абстракции;

·        невозможность определить набор операторов (методов), связанных с определенным типом данных: приходится задавать операции в конкретном приложении;

·        возникновение эффекта утраты при определенных сочетаниях данных третьей и даже второй нормальных форм;

·        Стоимость. То есть дороговизна создания и поддержания базы данных.

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

Для этого применяют хранилища 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. Главная решаемая проблема – масштабируемость при поиск-запросах.