ВУЗ:
Составители:
Рубрика:
89
Объекты и значения могут быть именованными. С именованием объекта или
значения связана долговременность его хранения (persistency): любые именованные
объекты или значения долговременны; любые объект или значение, входящие как часть в
другой именованный объект или значение, долговременны.
С помощью специального указания, задаваемого при определении класса, можно
добиться долговременности хранения любого объекта этого класса. В этом случае система
автоматически порождает значение-множество, имя которого совпадает с именем класса.
В этом множестве гарантированно содержатся все объекты данного класса.
Метод - программный код, привязанный к конкретному классу и применимый к
объектам этого класса. Определение метода в O2 производится в два этапа. Сначала
объявляется сигнатура метода, т.е. его имя, класс, типы или классы аргументов и тип или
класс результата. Методы могут быть публичными (доступными из объектов других
классов) или приватными (доступными только внутри данного класса). На втором этапе
определяется реализация класса на одном из языков программирования O2 (подробнее
языки обсуждаются в следующем разделе нашего обзора).
В модели O2 поддерживается множественное наследование классов на основе
отношения супертип/подтип. В подклассе допускается добавление и/или переопределение
атрибутов и методов. Возможные при множественном наследовании двусмысленности (по
именованию атрибутов и методов) разрешаются либо путем переименования, либо путем
явного указания источника наследования. Объект подкласса является объектом каждого
суперкласса, на основе которого порожден данный подкласс.
Поддерживается предопределенный класс "Оbject", являющийся корнем решетки
классов; любой другой класс является неявным наследником класса "Object" и наследует
предопределенные методы ("is_same", "is_value_equal" и т.д.).
Специфической особенностью модели O2 является возможность объявления
дополнительных "исключительных" атрибутов и методов для именованных объектов. Это
означает, что конкретный именованный объект-представитель класса может обладать
типом, являющимся подтипом типа класса. Конечно, с такими атрибутами не работают
стандартные методы класса, но специально для именованного объекта могут быть
определены дополнительные (или переопределены стандартные) методы, для которых
дополнительные атрибуты уже доступны. Подчеркивается, что дополнительные атрибуты
и методы привязываются не к конкретному объекту, а к имени, за которым в разные
моменты времени могут стоять вообще говоря разные объекты. Для реализации
исключительных атрибутов и методов требуется развитие техники позднего связывания.
В следующем разделе среди прочего рассмотрим особенности языков
программирования и запросов системы O2, которые, конечно, тесно связаны со
спецификой модели данных.
Языки программирования объектно-ориентированных баз данных
Как отмечают многие исследователи и разработчики, объектно-ориентированная
система БД представляет собой объединение системы программирования и СУБД.
Альтернативная, но не более проясняющая суть дела точка зрения состоит в том, что
объектно-ориентированная СУБД - это СУБД, основанная на объектно-ориентированной
модели данных.
Потеря соответствия между языками программирования и языками запросов
в реляционных СУБД
Мы уже говорили, что основная практическая надобность в ООБД связана с
потребностью в некоторой интегрированной среде построения сложных информационных
систем. В этой среде должны отсутствовать противоречия между структурной и
поведенческой частями проекта и должно поддерживаться эффективное управление
сложными структурами данных во внешней памяти. В отличие от случая реляционных
Объекты и значения могут быть именованными. С именованием объекта или
значения связана долговременность его хранения (persistency): любые именованные
объекты или значения долговременны; любые объект или значение, входящие как часть в
другой именованный объект или значение, долговременны.
С помощью специального указания, задаваемого при определении класса, можно
добиться долговременности хранения любого объекта этого класса. В этом случае система
автоматически порождает значение-множество, имя которого совпадает с именем класса.
В этом множестве гарантированно содержатся все объекты данного класса.
Метод - программный код, привязанный к конкретному классу и применимый к
объектам этого класса. Определение метода в O2 производится в два этапа. Сначала
объявляется сигнатура метода, т.е. его имя, класс, типы или классы аргументов и тип или
класс результата. Методы могут быть публичными (доступными из объектов других
классов) или приватными (доступными только внутри данного класса). На втором этапе
определяется реализация класса на одном из языков программирования O2 (подробнее
языки обсуждаются в следующем разделе нашего обзора).
В модели O2 поддерживается множественное наследование классов на основе
отношения супертип/подтип. В подклассе допускается добавление и/или переопределение
атрибутов и методов. Возможные при множественном наследовании двусмысленности (по
именованию атрибутов и методов) разрешаются либо путем переименования, либо путем
явного указания источника наследования. Объект подкласса является объектом каждого
суперкласса, на основе которого порожден данный подкласс.
Поддерживается предопределенный класс "Оbject", являющийся корнем решетки
классов; любой другой класс является неявным наследником класса "Object" и наследует
предопределенные методы ("is_same", "is_value_equal" и т.д.).
Специфической особенностью модели O2 является возможность объявления
дополнительных "исключительных" атрибутов и методов для именованных объектов. Это
означает, что конкретный именованный объект-представитель класса может обладать
типом, являющимся подтипом типа класса. Конечно, с такими атрибутами не работают
стандартные методы класса, но специально для именованного объекта могут быть
определены дополнительные (или переопределены стандартные) методы, для которых
дополнительные атрибуты уже доступны. Подчеркивается, что дополнительные атрибуты
и методы привязываются не к конкретному объекту, а к имени, за которым в разные
моменты времени могут стоять вообще говоря разные объекты. Для реализации
исключительных атрибутов и методов требуется развитие техники позднего связывания.
В следующем разделе среди прочего рассмотрим особенности языков
программирования и запросов системы O2, которые, конечно, тесно связаны со
спецификой модели данных.
Языки программирования объектно-ориентированных баз данных
Как отмечают многие исследователи и разработчики, объектно-ориентированная
система БД представляет собой объединение системы программирования и СУБД.
Альтернативная, но не более проясняющая суть дела точка зрения состоит в том, что
объектно-ориентированная СУБД - это СУБД, основанная на объектно-ориентированной
модели данных.
Потеря соответствия между языками программирования и языками запросов
в реляционных СУБД
Мы уже говорили, что основная практическая надобность в ООБД связана с
потребностью в некоторой интегрированной среде построения сложных информационных
систем. В этой среде должны отсутствовать противоречия между структурной и
поведенческой частями проекта и должно поддерживаться эффективное управление
сложными структурами данных во внешней памяти. В отличие от случая реляционных
89
Страницы
- « первая
- ‹ предыдущая
- …
- 87
- 88
- 89
- 90
- 91
- …
- следующая ›
- последняя »
