|
Расширенная реляционная модель, ориентированная на сложные алгоритмы обработки данныхАвтор(ы): Г.В. Слюсарев, Ю.Н. Гарашко Реляционная модель, впервые сформулированная Коддом[1], является теоретическим фундаментом современных реляционных СУБД. Уже из названия первой работы Кодда[1] видно, что при разработке реляционной модели данных акцент делался на использовании ее для создания банков данных. Как известно, программы - это алгоритмы и данные. В основе требований, которые привели к появлению реляционного подхода, лежит требование так называемой независимости от данных – физической и логической. Физическая независимость обеспечивает независимость данных от аппаратных ресурсов, а логическая – независимость алгоритмов от изменения структуры таблиц базы данных. Надо заметить, что если первая проблема решена в современных реляционных СУБД блестяще, то логическая независимость обеспечивается только при сравнительно простых изменениях структуры таблиц БД. Однако реляционные СУБД прекрасно себя зарекомендовали для широкого класса задач обработки данных. К тому же, поставщики основных промышленных СУБД ввели в свои системы поддержку объектных расширений. Немаловажным фактором является также объем накопленных банков данных и огромные затраты, требующиеся для замены информационных систем. По этой причине в качестве одного из главных требований при разработке новых систем обработки данных является их тесная интеграция с существующими промышленными реляционными СУБД. Есть много причин, по которым акцент в обработке сегодня сместился от хранения и простых выборок данных в сторону алгоритмов, но главная из них состоит в том, что современные информационные системы являются многозвенными. В любом таком приложении присутствуют сервера приложений. Они могут решать различные задачи:
В настоящей работе рассматривается подход, позволяющий создавать реляционные машины данных, которые:
Наш подход использует специальное расширение классической модели Кодда, ориентированное на сложные алгоритмы обработки данных. В основу формирования нового набора базовых операций алгебры мы положим простые требования их удобства для создания алгоритмов и выразительности последних, а так же простоту организации взаимодействия с современными РСУБД SQL-типа. Акцент в этом случае делается на операции с заголовками отношений и активное использование Transient Data (временной памяти). Для отношений, хранящихся во временной памяти, операция присвоения становится нормальной и востребованной операцией. Для начала наша модификация реляционной модели будет касаться самого понятия отношения, а именно стандартное понятие атрибута заголовка отношения (имя и домен) расширяется дополнительным свойством – видом атрибута отношения. Таким образом, заголовок отношения становится неупорядоченным набором триад (имя атрибута, домен, вид). Определение атрибутов кортежей остается таким же, как в классической реляционной модели – пара (имя, значение). Для расширенного таким образом понятия отношения вводятся три новые операции:
Некоторые операции классической реляционной алгебры могут быть выражены через эти новые операции. Например:
Как было сказано ранее, в расширенной реляционной модели вводится два подмножества отношений.
Подчеркнем для последних важность поддержки так называемого информационного принципа - все информационное содержимое представлено в виде явных значений атрибутов (отсутствуют указатели). По крайней мере, должен выполняться ослабленный вариант этого принципа, а именно, для тех отношений, над которыми будут выполняться операции с отношениями в постоянной памяти. С другой стороны, структуры данных в памяти являются гораздо более гибкими, а операции над ними выполняются значительно быстрее. Это дает возможность развивать для отношений во временной памяти дополнительный набор операций, являющийся ортогональным по отношению к операциям реляционной алгебры. В частности важными являются:
Важно, чтобы конечный результат любого алгоритма представлял набор отношений во временной памяти. В этом случае задача отображения результатов алгоритма на таблицы реляционной СУБД не будет представлять какой-либо сложности. Для работы с отношениями во временной памяти, как правило, достаточно трех определенных нами операций. В этом наш вывод согласуется с [6] – SQL является безразмерным языком. В мире OLTP никого и никогда не интересуют служащие, зарабатывающие больше своих менеджеров. На самом деле, как отмечалось ранее, в этом мире вообще не задаются непредвиденные запросы. Следовательно, в этом случае достаточно было бы иметь некоторый язык, который был бы более ограниченным, чем SQL. Отметим, что реляционную машину данных на основе расширенной реляционной модели можно использовать как сервер приложения на базе технологий J2EE или NET. Другой путь – это создание специализированного API на базе встроенного языка хранимых процедур РСУБД (или аналогичных UDF-расширений). К тому же, на сегодня РСУБД позволяют создавать хранимые процедуры на современных языках программирования. Однако в этом случае сложнее будет обеспечить масштабирование и независимость машины данных от используемой РСУБД. Предложенный подход распространяет реляционные принципы обработки данных на разработку серверов приложений и толстых клиентских приложений. Он позволяет создавать реляционные машины данных, которые существенно упрощают разработку прикладной функциональности таких приложений. Предложенный подход так же позволяет легко интегрировать реляционную модель с любым из языков программирования и обеспечить независимость алгоритмов приложений от данных. Литература:
|
|||||||||