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

       

СЗ стратегия


Альтернативу рассмотренному способу реализации ОР отображения составляет разработанный вариант схемо-зависимой стратегии, основанный на использовании паттернов отображения классов и атрибутов OneInheritancePath–OneTable, Attribute–Column, ClassAssociation, ClassSelect и ClassAggregate. Данный вариант представляет собой попытку оптимизировать реляционную схему для наиболее эффективной работы с данными внутри одной прикладной модели. Подобная постановка задачи возникает довольно часто на практике и представляет интерес для приложений, оперирующих с одной, возможно масштабной, междисциплинарной прикладной моделью. Указанное сочетание паттернов отображения приводит к большому количеству таблиц, требуемых для адекватного представления объектно-ориентированных данных. Однако при этом оно обеспечивает более эффективную реализацию базовых операций манипулирования объектами. Паттерн OneInheritancePath–OneTable использует преимущества сериализованного представления атрибутов конкретных классов и упрощает компоновку наследуемых атрибутов для объектов выбранных типов. Перечисленные паттерны отображения исключают многоуровневую косвенную адресацию при доступе к таблицам атрибутов и обеспечивают высокую эффективность реализации вспомогательных операций сборки значений из таблиц атрибутов при чтении объектов и их рассылку по соответствующим таблицам при записи и модификации объектов.

Реализация адаптера посредника для СЗ стратегии существенно отличается от реализации СН стратегии. Во-первых, реляционная схема для СУБД генерируется соответствующим CASE инструментом для каждой прикладной модели, специфицированной на языке EXPRESS. Ниже представлен фрагмент описания такой схемы на языке SQL для прикладной модели ActorResource, приведенной на рис. 1. Во-вторых, одновременно со схемой генерируются исходные тексты пакета процедур на языке PL/SQL для манипулирования объектами данной прикладной модели. Каждая процедура пакета ориентирована на работу с объектами определенного типа и имеет специфический для него интерфейс.

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