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

       

Таким способом реализуются поддержка связей


Таким способом реализуются поддержка связей между отношениями на уровне объектной системы (КО2). Отметим, что класс MasterClass получен после трансформации таблицы MasterTable. Как видно из рис. 1, имеется возможность объявления производных классов (КО5). Так, класс MCChild01 унаследован от класса MasterClass и значения его свойств сохраняются в таблице ChildAttValue. Перейдём к критерию оптимальности 4 и рассмотрим методы, присутствующие в классе DetailClass. Часть методов физически представляют собой объекты БД. Метод View является представлением и возвращает значения всех атрибутов класса в виде единого набора данных. В производном классе (Child01) этот метод переопределён, так как необходимо вернуть значения атрибутов, объявленных в этом классе (ChAtt01, ChAtt04). Метод ProcView физически представляет собой хранимую процедуру (ХП), которая на основе переданного фильтра (в виде XML) формирует результат, представляющий собой множество объектов. Для получения значений атрибутов одного конкретного объекта и для их изменения используется процедура ProcSupport. Для представления нескольких экземпляров классов в графическом интерфейсе пользователя объявлен метод FormView; для редактирования – FormAU, для удаления – FormDel. На рис. 1, в классе DetailClass присутствует метод FormLookup, который предназначен для подстановки значений в поля внешнего ключа. Отметим, что все методы могут быть перегружены (см. атрибуты класса Child01, помеченные стереотипом «ovveride»), т.е. реализуется полиморфизм на уровне БД (КО5). Общая схема извлечения информации и отображения её в клиентском приложении представлена на рис. 2.


Рис. 2. – Схема извлечения данных

Все данные (элементы метамодели и экземпляры бизнес-сущностей) физически сохраняются в таблицах базы данных и извлекаются с помощью представления (View). Ключевым достоинством представления является то, что на сервере СУБД представление сохранено в откомпилированном (оптимизированном) виде и имеется возможность создания индексов по некоторым полям.

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