Классика баз данных - статьи

       

СН стратегия


Разработанная схемо-независимая стратегия состоит в применении обобщенных паттернов 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 – удаление объектов по заданным идентификаторам.



Содержание  Назад  Вперед