
- •Введение
- •1. Достоинства и недостатки реляционной и объектной моделей Задачи, недоступные для реляционного подхода
- •Задачи, недоступные для объектного подхода
- •Задачи, недоступные обеим моделям
- •2. Реализация объектного подхода в oracle
- •2.1. Хранение объектов в столбцах реляционных таблиц
- •2.2. Создание таблицы объектов
- •2.3. Ссылки на объект
- •2.4. Методы объектов
- •2.5. Конструкторы
- •2.6. Статические методы
- •2.7. Методы сравнения
- •2.8. Объектные представления
- •3. Реализация механизма наследования объектов в oracle
- •3.1. Особенности наследования объектов в oracle
- •3.2. Абстрактные объекты
- •4. Реализация полиморфизма в субд oracle
- •4.1. Полиморфизм типов
- •4.2. Расширение и сужение объектных типов
- •4.3. Оператор is of
- •4.4. Виртуальные методы
РАБОТА С ОБЪЕКТАМИ В СУБД ORACLE 9.2
Введение 2
1. Достоинства и недостатки реляционной и объектной моделей 2
Задачи, недоступные для реляционного подхода 2
Задачи, недоступные для объектного подхода 2
Задачи, недоступные обеим моделям 2
2. Реализация объектного подхода в ORACLE 3
2.1. Хранение объектов в столбцах реляционных таблиц 3
2.2. Создание таблицы объектов 4
2.3. Ссылки на объект 4
2.4. Методы объектов 5
2.5. Конструкторы 6
2.6. Статические методы 7
2.7. Методы сравнения 8
2.8. Объектные представления 9
3. Реализация механизма наследования объектов в ORACLE 10
3.1. Особенности наследования объектов в ORACLE 10
3.2. Абстрактные объекты 10
4. Реализация полиморфизма в СУБД ORACLE 12
4.1. Полиморфизм типов 12
4.2. Расширение и сужение объектных типов 13
4.3. Оператор IS OF 13
4.4. Виртуальные методы 14
Введение
Начиная с версии 8 в СУБД ORACLE, появилась возможность хранения в таблицах неатомарных значений, а именно объектов в смысле объектного подхода. Существует два способа хранения объектов: в одном или нескольких полях реляционной таблицы или в специальной объектной таблице.
Сразу надо предостеречь от преувеличений достоинств объектного подхода в базах данных вообще. Действительно, неискушенный читатель некоторых руководств или рекламных материалов быстро впадет в недоумение: зачем же такие маститые разработчики СУБД, как фирмы IBM, Informix или Oracle так долго занимались табличной организацией данных, когда все это время рядом существовала более совершенная, удобная и т. д. объектная модель, первая реализация которой фирмой Xerox известна еще с 1980 года? Непредвзятый ответ состоит в том, что ни табличная организация, ни объектная не являются универсально «хорошими», и что имеются свои достоинства и недостатки у одной и у другой. Популярность объектно-ориентированных баз данных в настоящий момент обусловлена популярностью объектного подхода вообще, или, иными словами, модой на все объектно-ориентированное.
1. Достоинства и недостатки реляционной и объектной моделей Задачи, недоступные для реляционного подхода
Реляционной моделью трудно описать предметную область, подразумевающую наличие разветвленной иерархии множества объектов или большого числа сложных типов данных. Задача еще более осложняется, если в ходе эксплуатации ИС постоянно требуется вводить новые типы данных.
Если кратко, то реляционные базы данных не позволяют использовать всю полноту и функциональность объектно-ориентированного подхода, который стал очень популярным в последнее время.
Задачи, недоступные для объектного подхода
Внутри объектные базы данных построены не на реляционной алгебре, хотя и имеют SQL-интерфейс. Реляционные же базы данных позволяют быстрее выполнять SQL-запросы, поскольку используют реляционную алгебру на уровне ядра.
Задачи, недоступные обеим моделям
Пример реальных потребностей моделирования, с которыми не справляется ни реляционный подход, ни нынешний объектный. Пусть мы собираем информацию о лицах в течение длительного периода времени. База проектировалась 10 лет назад, и в ней имелся атрибут личности «партийность». Для него был определен вполне достаточный логический тип. Через несколько лет вдруг выяснилось, что логического типа уже недостаточно, и для «партийности» требуется указывать значение из списка. Еще через несколько лет графа «партийность» в организации, ведущей базу данных, оказалась упразднена. Таким образом, для данных об одном и том же лице, относящихся к одному периоду времени, должен использоваться булев атрибут «партийности», для данных, относящихся к другому периоду, – символьный атрибут (внешний ключ?), а для данных, относящихся к третьему периоду, атрибут должен отсутствовать. Другими примерами структурных изменений во времени могут служить упразднение атрибута «национальность» или добавление атрибута «государственный пенсионный страховой номер».
Сегодняшние подходы к моделированию данных (что реляционный, что объектный) сориентированы в первую очередь на статическое моделирование прикладной области и мало рассчитаны на динамику (историю). В лучшем случае можно долго и тщательно разрабатывать схему данных, а уж потом фиксировать ее и реализовывать в ИС, но никогда не эксплуатируется тезис о том, что «структура данных может изменяться (а не только пополняться)».