Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СУБД (конспект лекций для студентов).doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
414.21 Кб
Скачать

6.3.4. Объектные расширения реляционных субд. Язык sql-3.

Попытки совместить средства манипулирования данными реляционной модели и способы описания внешнего мира объектно-ориентированной модели получили развитие в языке SQL-3. Рассмотрим только предлагаемые способы определения данных. Разработчики SQL-3 считают, что характеристики объекта определяется описанием строки таблицы. Поэтому, вводится специальная возможность описания нового типа данных.

На основе нового типа могут быть определены таблицы.

Новые типы допускается использовать и для определения столбцов (т.е. игнорируется требование атомарности атрибутов реляционной модели).

Наследование определяется с помощью фразы under.

В SQL-3 предполагается, что каждый объект имеет уникальный идентификатор - OID, именно он используется при создании ссылок на объекты. Здесь свойства SQL-3 рассмотрены весьма кратко. Более полное представление о них можно получить из литературы, посвященной возможностям СУБД Oracle 8, которая поддерживает данный язык. Областью определения объекта надо считать не строку, а столбец реляционной таблицы.

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

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

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

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

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

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

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

  6. Наследование данных и функций.

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

Реализация описанных свойств позволила М. Стоунбрейкеру так спозиционировать объектно-реляционные СУБД относительно реляционных и объектно-ориентированных систем:

Простые данные

Сложные данные

Наличие средств запросов

Реляционные системы

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

Отсутствие средств запросов

Файловые системы

Объектно-ориентированные системы

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

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