06 Объектная и реляционная модели.ppt
- Количество слайдов: 13
Объектнореляционное преобразование
Связь между объектной и реляционной моделью Модель классов Модель данных 2
Связь между объектной и реляционной моделью 3
Объектно-реляционное несоответствие (impedance mismatch) n n n n n Декларативный интерфейс и императивный интерфейс: реляционная модель – декларативная, объектная модель – императивная (поведенческая) Привязка к схеме: реляционная модель задается схемой, объектная модель не имеет заданной схемы Правила доступа (стандартизация и локальная свобода): в реляционной модели правила доступа и изменения значений атрибутов определяются реляционными операциями. В объектной модели в каждом классе задается собственный интерфейс доступа и изменения состояния Связь между сущностями и действиями: в объектной модели тесная связь между данными и методами класса. В реляционной модели прямая связь между данными и выполняемыми операциями отсутствует, указывается только наличие связей между данными (1: 1, 1: N, N: M) Задание уникальности: в реляционной модели кортежи уникально идентифицируется в явном виде при помощи первичных ключей. В объектной модели явное указание уникальности не требуется, положение объекта в памяти (адрес) обеспечивает уникальность Объектная индивидуальность: Объекты всегда имеют уникальную индивидуальность. Объекты могут иметь одинаковое состояние (быть эквивалентными), но при этом они не являются идентичными (положение в памяти различно, поэтому изменение одного объекта не приводит к изменению другого объекта). В реляционной модели нет «естественного» механизма индивидуальности, поэтому используется либо естественный первичный ключ, либо искусственный первичный ключ для уникальной идентификации объектов. Нормализация: Объектная модель часто на столько сложной, что не может быть выражена нормализованной реляционной моделью. Связи между объектами могут иметь сетевой вид, что соответствует отсутствию нормализации в реляционной модели. Например, объекты одного класса могут содержаться в дочерних коллекциях объектов двух разных классов (такое отношение между сущностями не может быть выражено реляционной моделью) Наследование: Реляционная модель не поддерживает концепцию наследования (кортеж не может быть потомком другого кортежа). Объектная модель поддерживает концепцию наследования. Прямые и обратные ссылки: Отношение между сущностями в объектной модели задаются в экземпляре родительского объекта в виде ссылок (адресов) на экземпляры дочерних объектов. В реляционной модели ссылки направлены в обратную сторону – дочерний объект содержит ссылки (внешний ключ) на родительский объект. 4
Отображение наследования классов в реляционную модель n n n «Таблица на иерархию» «Таблица на подкласс» «Таблица на конкретный класс» 5
Отображение наследования классов в реляционную модель «Таблица на иерархию» : n Не возможно назначать ограничение NULL n Дополнительный столбец discriminator n «Разреженные» таблицы 6
Отображение наследования классов в реляционную модель «Таблица на подкласс» : n Сложные запросы n Возможность изменения иерархии наследования
Отображение наследования классов в реляционную модель «Таблица на конкретный класс» : n Сложные запросы n Проблема идентификации в полиморфных запросах n Сложность изменения иерархии наследования (например, добавление) 8
Отложенная загрузка объектов Прокси-объект (proxy) 9
Отображение ассоциаций Ассоциация «один к одному» (one-to-one) class Attachment { public: char[] File. Name; Content; } 10
Отображение ассоциаций Ассоциация «один ко многим» (one-to-many) class Customer { public: char[] Name; Order[] Orders; }; 11
Отображение ассоциаций Зависимые объекты (объекты-значения) class Order { public: char[] Date; private: Order. Line[] Order. Lines; }; 12
Отображение ассоциаций Ассоциация «многие ко многим» (many-to-many) class Customer { public: char Name[]; Suppliers Supplier[]; }; 13
06 Объектная и реляционная модели.ppt