Расширенная реляционная модель, ориентированная на сложные алгоритмы обработки данных


Автор(ы): Г.В. Слюсарев, Ю.Н. Гарашко

Реляционная модель, впервые сформулированная Коддом[1], является теоретическим фундаментом современных реляционных СУБД. Уже из названия первой работы Кодда[1] видно, что при разработке реляционной модели данных акцент делался на использовании ее для создания банков данных. Как известно, программы - это алгоритмы и данные. В основе требований, которые привели к появлению реляционного подхода, лежит требование так называемой независимости от данных – физической и логической. Физическая независимость обеспечивает независимость данных от аппаратных ресурсов, а логическая – независимость алгоритмов от изменения структуры таблиц базы данных. Надо заметить, что если первая проблема решена в современных реляционных СУБД блестяще, то логическая независимость обеспечивается только при сравнительно простых изменениях структуры таблиц БД. Однако реляционные СУБД прекрасно себя зарекомендовали для широкого класса задач обработки данных. К тому же, поставщики основных промышленных СУБД ввели в свои системы поддержку объектных расширений. Немаловажным фактором является также объем накопленных банков данных и огромные затраты, требующиеся для замены информационных систем. По этой причине в качестве одного из главных требований при разработке новых систем обработки данных является их тесная интеграция с существующими промышленными реляционными СУБД.

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

  • упрощение развертывания и поддержки приложений;
  • балансировка нагрузки WEB-ферм портальных приложений;
  • обеспечение масштабирования приложения;
  • обеспечение функционирования WEB-служб.

В настоящей работе рассматривается подход, позволяющий создавать реляционные машины данных, которые:

  • существенно упрощают разработку серверов приложений;
  • обеспечивают независимость получаемых алгоритмов от данных;
  • позволяют легко организовать взаимодействие с унаследованными реляционными СУБД с поддержкой SQL-операций;
  • легко интегрируется с любым языком программирования.

Наш подход использует специальное расширение классической модели Кодда, ориентированное на сложные алгоритмы обработки данных. В основу формирования нового набора базовых операций алгебры мы положим простые требования их удобства для создания алгоритмов и выразительности последних, а так же простоту организации взаимодействия с современными РСУБД SQL-типа. Акцент в этом случае делается на операции с заголовками отношений и активное использование Transient Data (временной памяти). Для отношений, хранящихся во временной памяти, операция присвоения становится нормальной и востребованной операцией.

Для начала наша модификация реляционной модели будет касаться самого понятия отношения, а именно стандартное понятие атрибута заголовка отношения (имя и домен) расширяется дополнительным свойством – видом атрибута отношения. Таким образом, заголовок отношения становится неупорядоченным набором триад (имя атрибута, домен, вид). Определение атрибутов кортежей остается таким же, как в классической реляционной модели – пара (имя, значение). Для расширенного таким образом понятия отношения вводятся три новые операции:

  • Клонирование отношения – erCLONE;
  • Установка вида атрибутам отношения - erSET_ATTRIBS_KIND;
  • Перемещение данных одного отношения в другое - erMOVE;

Некоторые операции классической реляционной алгебры могут быть выражены через эти новые операции. Например:

  • операция объединения является последовательностью операций клонирования erCLONE любого из совместимых исходных отношений и двух последовательных операций перемещения erMOVE;
  • операция проекции есть последовательность операций клонирования и перемещения исходного отношения;
  • операция эквисоединения является двумя последовательными операциями клонирования исходных отношений и двумя операциями перемещения их данных.

Как было сказано ранее, в расширенной реляционной модели вводится два подмножества отношений.

  1. Отношения, находящиеся в постоянной памяти (Persistend Data) являются абстракцией таблиц современных реляционных БД SQL-типа.
  2. Отношения, находящиеся во временной памяти (Transient Data) являются абстракцией некоторых списковых структур в оперативной памяти компьютера.

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

  • наличие понятия индекса и явного управления им;
  • возможность итеративного перебора кортежей отношения и выполнения процедурных операций над его атрибутами;
  • наличие операции вставки кортежа в отношение, что дает возможность эффективно взаимодействовать с нереляционными источниками данных.

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

Для работы с отношениями во временной памяти, как правило, достаточно трех определенных нами операций. В этом наш вывод согласуется с [6] – SQL является безразмерным языком. В мире OLTP никого и никогда не интересуют служащие, зарабатывающие больше своих менеджеров. На самом деле, как отмечалось ранее, в этом мире вообще не задаются непредвиденные запросы. Следовательно, в этом случае достаточно было бы иметь некоторый язык, который был бы более ограниченным, чем SQL.

Отметим, что реляционную машину данных на основе расширенной реляционной модели можно использовать как сервер приложения на базе технологий J2EE или NET. Другой путь – это создание специализированного API на базе встроенного языка хранимых процедур РСУБД (или аналогичных UDF-расширений). К тому же, на сегодня РСУБД позволяют создавать хранимые процедуры на современных языках программирования. Однако в этом случае сложнее будет обеспечить масштабирование и независимость машины данных от используемой РСУБД.

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

Литература:

  1. Codd E.F. "A Relational Model for Large Shared Data Banks". Communications of the ACM, 13, 6, June 1970, p.p. 377-387.
  2. M.M.Astrahan, M.W.Blasgen, D.D.Chamberlin, K.P.Eswaran, J.N.Gray, P.P.Griffiths, W.F.King, R.A.Lorie, P.R.McJones, J.W.Mehl, G.R.Putzolu, I.L.Traiger, B.Wade, and V.Watson. System R: A Relational Approach to Database Management. ACM Transactions on Database Systems, 1976.
  3. M.Stonebraker, E.Wong, P.Kreps, and G.Held. The Design and Implementation of INGRES. ACM Trans. Database Systems, 1(3):189-222, 1976.
  4. Вильям Кук, Али Ибрагим. Интеграция языков программирования с базами данных: в чем состоит проблема? Перевод: Сергей Кузнецов.
  5. Hugh Darwen and C.J.Date. "The Third Manifesto: Foundation of Object/Relational Databases," In C.J.Date: Relational Database Writings 1994-1997. Reading, Mass.: Addison-Wesley (1998).
  6. Майкл Стоунбрейкер, Сэмюэль Мэдден, Дэниэль Абади, Ставрос Харизопулос, Набил Хачем, Пат Хеллэнд. Конец архитектурной эпохи, или Наступило время полностью переписывать системы управления данными. Пересказ: Сергей Кузнецов Оригинал: Michael Stonebraker,Samuel Madden, Daniel J. Abadi, Stavros Harizopoulos, Nabil Hachem, Pat Helland. The End of an Architectural Era (It's Time for a Complete Rewrite). Proceedings of VLDB, 2007, Vienna, Austria.