СН стратегия
Разработанная схемо-независимая стратегия состоит в применении обобщенных паттернов AllClasses–OneTable, Attribute–Table, GenericAssociation, GenericSelect, GenericAggregate для отображения схем, классов и атрибутов, а также паттерна представления соответствующих метаданных прикладной модели реляционными таблицами.
Реализованные в среде Oracle9 PL/SQL пакеты обеспечивают выполнение всего базового набора операций с хранимыми объектно-ориентированными данными и запросов к ним. Обобщенная, независимая от конкретных прикладных моделей реализация PL/SQL процедур и функций основана на совместном одновременном использовании данных и метаданных, хранимых в системах таблиц в соответствии с перечисленными паттернами отображения. Приведем описание основных пакетных методов для объектно-реляционного отображения в качестве иллюстрации СН стратегии.
Пакет lb_defined_types для работы с метаинформацией о пользовательских типах данных, определенных EXPRESS схемой:
- procedure Register_Defined_Type – регистрация в БД пользовательского типа схемы;
- procedure Save_Enum_Type – сохранение метаданных для перечислимого типа;
- procedure Save_Select_Type – сохранение метаданных для селективного типа;
- procedure Save_Aggregate_Type – сохранение метаданных для агрегатного типа;
- function Get_Type – выдача метаинформации о пользовательском типе данных.
Пакет lb_entity предназначен для работы с метаинформацией, относящейся к объектным типам EXPRESS схемы:
- function Register_Entity – регистрация объектного типа схемы;
- procedure Save_Attribute – сохранение метаданных для атрибута, определяемого в регистрируемом объектном типе;
- procedure Save_Inheritance_Relations – сохранение информации о подтипах и супертипах регистрируемого объектного типа;
- function Add_Entity_From_Schema – экспортирование информации об объектном типе из другой схемы;
- function Get_Entity – выдача метаинформации об объектном типе;
- function Get_Attribute – выдача метаинформации об атрибуте, определяемом в объектном типе схемы.
Пакет lb_instance предназначен для работы с данными: занесения данных в базу, а также для извлечения данных из нее на основе запросов:
- function Init_Instance – инициация сохранения объекта;
- procedure Init_Attribute_List – инициация сохранения значений атрибутов объекта;
- procedure Put_Simple_Attribute_{R, I, S, B, L, E} – сохранение значения атрибута вещественного, целочисленного, символьного, бинарного, логического, перечислимого типа, соответственно;
- procedure Put_Association – сохранение значения атрибута ассоциативного типа;
- function Put_Aggregate – инициация сохранения элементов агрегата;
- function Put_Select – инициация сохранения селективного элемента;
- procedure Put_Element_{R, I, S, B, L, E} – сохранение значения элемента агрегатной или селективной конструкции вещественного, целочисленного, символьного, бинарного, логического, перечислимого типа, соответственно;
- procedure Get_Instances_By_ID – выборка объектов по заданным идентификаторам;
- procedure Get_Instances_By_Type – выборка объектов по заданному типу;
- procedure Get_Instances_By_Route – выборка объектов по заданному навигационному маршруту;
- procedure Add_Route_Path – метод формирования навигационного маршрута;
- procedure Get_All_Instances – выборка всех объектов;
- procedure Delete_Instances – удаление объектов по заданным идентификаторам.
Содержание Назад Вперед