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

2.9 Объектно-реляционные субд

Этот способ объединения возможностей реляционного и объектно-ориентированного подхода к управлению данными предложил известный американский ученый Майкл Стоунбрейкер [6]. Согласно его воззрениям реляционную СУБД нужно просто дополнить средствами доступа к сложным данным. При этом ядро СУБД не требует переработки и сохраняет все присущие реляционным системам достоинства. Объектные расширения реализуются в виде надстроек, которые динамически подключаются к ядру. На основе этой идеи под руководством М. Стоунбрейкера в университете Беркли (Калифорния, США) была разработана СУБД Postgres, которая имеет следующие ключевые возможности.

  • Типы, операторы и методы доступа, определяемые пользователем. Для решения проблем с примером о хранении земельных участков, можно определить новый тип данных «участок», необходимые операции над ним (например, вычисление площади), а также метод доступа, поскольку с помощью B-дерева нельзя выполнить двумерный поиск в задаче о перекрывающихся многоугольниках. Здесь целесообразно использовать дерево более высокой размерности (R-дерево) или другие методы.

  • Поддержка сложных объектов, представляющих собой наборы других объектов.

  • Перегрузка операторов манипулирования данными.

  • Создание функций, определяемых пользователем.

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

  • Наследование данных и функций. Например, от типа «участок» мы можем породить потомков «обычный участок» (сумма_налога, поступление_платежей) и «участок освобожденный от налога» (сумма_налога, причина_освобождения).

  • Использование массивов как значений полей кортежей. Это необходимо, например, для хранения ставки налога, изменяющейся в зависимости от времени года.

Кроме того, СУБД Postgres обладает свойствами, которые позволяют назвать ее темпоральной СУБД. При любом обновлении записи создается ее новая копия, а предыдущий вариант продолжает существовать вечно. Даже после удаления записи все накопленные варианты сохраняются в БД. Можно извлечь из БД любой вариант записи, если указать момент или интервал времени, когда этот вариант был текущим. Достижение этих свойств позволило пересмотреть схемы журнализации и отката транзакций.

Все вышеописанные функции развиваются и в коммерческой СУБД Informix. Тем не менее, проект Postgres продолжается до сих пор, уже международной группой независимых разработчиков. К возможностям СУБД была добавлена поддержка SQL, поэтому несколько было изменено название – PostgreSQL, оптимизатор запросов на основе генетических алгоритмов и многое другое. При этом PostgreSQL остается свободно распространяемой системой, причем бесплатно можно получить как исходный код, так и бинарные файлы, собранные для той или иной платформы (поддерживаются практически все разновидности ОС Unix).

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