Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции ИОСУ Ч.1 _2016.docx
Скачиваний:
2
Добавлен:
31.01.2024
Размер:
2.97 Mб
Скачать

1.9 Типы и структуры данных, применяемые в объектно-реляционных бд

РБД обладают рядом ограничений, которые затрудняют их использование в приложениях, требующих богатого типового окружения. Это относится и к категорическому требованию использовать в столбцах таблиц только атомарные значения встроенных типов, и к невозможности определить новые типы данных (возможно, с атомарными значениями) с дополнительными или переопределенными операциями. Понятно, что ослабление этих ограничений приводит к потребности существенного пересмотра архитектуры серверных продуктов БД, в частности расширению системы типов и связанных с этим структур данных [5].

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

Фактически, строчный тип − это именованная спецификация одного или более столбцов (для каждого столбца указывается имя, а также его тип или домен). После определения строчного типа можно специфицировать таблицы, заголовок которых соответствует этому типу или включает его как свою часть.

Наследование таблиц и семантика включения. Если таблица определена на одном строчном типе (без добавления столбцов), то разрешается использовать ее как супертаблицу и производить на ее основе подтаблицы с добавлением столбцов. При этом используется семантика включения.

В ряде случаев использование механизма наследования таблиц с использованием семантики включения позволяет более правильно (без излишеств) спроектировать БД и обойтись без привлечения операторов объединения при формулировке сводных запросов.

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

Объектные типы данных. Эта разновидность типов ближе всего к абстрактным типам данных в языках программирования. Идея состоит в том, что сначала специфицируется определяемый пользователем тип данных (переименовывается некоторый встроенный тип, определяется строчный тип или тип коллекции). Затем для этого типа можно специфицировать ряд определяемых пользователем функций. Строго говоря, после этого можно считать, что тип инкапсулирован этим набором функций, хотя не все разработчики считают строгую инкапсуляцию необходимой.

После полной спецификации объектного типа его можно использовать как встроенный или любой ранее определенный тип. В современных объектно-реляционных СУБД реализована полная возможность наследования объектных типов.

Соседние файлы в предмете Информационное обеспечение систем управления