Возможности реализации объектных моделей данных в дедуктивных средах
К.Ю. Лисовский,
Московский институт стали и сплавов - Технологический университет,
kl@ns.misa.ac.ru
Возможности представления объектных данных средствами логики первого
порядка активно исследуются в течение последнего десятилетия. Был предложен
ряд логических языков, прежде всего Datalog^meth ( Abiteboul S., Lausen
H., Uphoff H., Waller E. Methods and Rules. //SIGMOD Record, 1993, v.22,
Num.2, p.32-41.), поддерживающих идентификаторы объектов, полиморфизм,
наследование (как монотонное, так статическое и динамическое), переопределение
и позднее связывание, что позволяет классифицировать их как объектные,
а их программы могут быть преобразованы в программы логики первого порядка
(как правило, в Datalog с отрицаниями).
Модель данных, поддерживаемая Datalog^meth, поддерживает перечисленный
выше набор основных принципиальных и общепринятых объектных концепций,
и далее мы будем ссылаться на нее как на "базовую объектную модель данных".
Существует, однако, большое количество иных вариантов объектных моделей
данных, которые исследуются и развиваются не менее активно.
Возможности представления объектной модели с делегированием, а также
введение поддержки связей (relationships) в определенную выше базовую модель
средствами логики первого порядка и является предметом нашего рассмотрения.
Концепция делегирования позволяет определять объект в терминах отличия
его от ранее определенных объектов (объектов-прототипов), а не принадлежности
к предварительно описанному классу. Она может быть эффективна в ситуациях,
когда количество классов и объектов сопоставимо.
Предлагаемый язык Datalog/D поддерживает концепцию делегирования, используя
технику переписывания в Datalog с отрицаниями, подобную предложенной для
Datalog^meth. Необходимо отметить, однако, что реализация объектно-дедуктивной
системы в виде надстройки над реляционной СУБД является весьма проблематичной,
что является очевидным недостатком предложенного подхода. Областью применения
подобной системы может быть обработка слабоструктурированных данных, где
применение концепции делегирования может быть оправданным и эффективным.
Связи (relationships) часто относят к т.н. "семантическим расширениям"
объектной модели данных. Они могут быть смоделированы средствами базовой
модели, что позволяет избежать ее усложнения, однако такой подход имеет
известные ограничения: сложность представления связей степени три и более,
связей с атрибутами, инверсных связей, усложнение обеспечения целостности
базы данных, и т.д. В силу этого подобные средства непосредственно включены
во многие современные модели данных, например ODMG.
Поддержка таких расширений может быть включена и в объектно-дедуктивные
языки, реализованные с применением техники переписывания в Datalog с отрицанием,
например в язык Datalog/O, обсуждавшийся на семинаре Московской секции
ACM SIGMOD в январе 1998. Применяемая при этом техника во многом подобна
используемой для поддержки концепции делегирования, однако получаемая Datalog-программа
существенно более пригодна для вычисления при помощи связанных реляционно-дедуктивных
систем, что расширяет область применения подобных языков.
Дедуктивный подход предоставляет широкие возможности реализации развитых
моделей данных, в т.ч. объектных. Достоинством подобного подхода является
(сравнительная) простота создания языков данных, сочетающих поддержку мощной
модели данных с возможностью преобразования в вычислимые программы логики
первого порядка.
|