Объектно-реляционные базы данных: прошедший этап или недооцененные возможности? Сергей Кузнецов




НазваниеОбъектно-реляционные базы данных: прошедший этап или недооцененные возможности? Сергей Кузнецов
Дата конвертации27.04.2013
Размер445 b.
ТипПрезентации


Объектно-реляционные базы данных: прошедший этап или недооцененные возможности?

  • Сергей Кузнецов

  • Институт системного программирования РАН

  • kuzloc@ispras.ru


План выступления

  • 10 лет ОРСУБД

  • Informix Universal Server, Oracle8, DB2 Universal Database

  • Коротко о предпосылках ОРСУБД

  • Объектно-реляционные базы данных и язык SQL

  • SQL как модель данных

  • Гармонична ли «объектная» часть модели?

  • Кто и как использует ОРСУБД?

  • Проблемы использования ОРСУБД

  • Каковы перспективы?



10 лет ОРСУБД

  • Почему десять?

  • Что произошло в декабре 1996 г.?

  • Informix, Illustra и Майкл Стоубрейкер

  • Значит ли это, что Стоунбрейкер является отцом объектно-реляционного подхода?

  • А что такое «объектно-реляционные» базы данных?

  • Личная точка зрения: Манифест систем баз данных следующего поколения, SQL, реализации IBM и Oracle



Informix Universal Server

  • Декабрь 1996 г. – январь 1997 г.

  • Интеллектуальные большие объекты (smart large objects)

  • Индивидуальные типы данных (Distinct Types)

  • Типы данных со скрытой структурой (Opaque Types)



Informix Universal Server

  • Составные типы данных

  • Могут иметь структуру записи, множества, мультимножества или списка

  • Значениями столбцов таблиц могут быть записи, множества или списки, состоящие в свою очередь из атомарных или структурных значений



Informix Universal Server

  • Тип данных со структурой записи

  • CREATE ROW TYPE <имя типа> ( <имя поля> <тип поля>, . . . )

  • Три вида типов коллекций: множеств, мультимножеств и списков

  • CREATE TYPE <имя типа> SET <тип элементов> NOT NULL

  • CREATE TYPE <имя типа> MULTISET <тип элементов> NOT NULL

  • CREATE TYPE <имя типа> LIST <тип элементов> NOT NULL



Informix Universal Server

  • Механизм наследования может применяться к типам записей и таблицам

  • Одиночное наследование

  • Все функции, определенные для супертипа, автоматически распространяются на все его подтипы

  • Для подтипов могут определяться свои функции

  • Значения подтипов могут использоваться почти везде, где разрешено употребление значений их супертипов

  • Единственное ограничение возникает при отведении памяти и хранении значений

  • Здесь соответствие типов должно быть точным



Informix Universal Server

  • Tипизированные таблицы (типами записи)

  • CREATE TABLE … OF TYPE …

  • При определении подтаблиц некоторые свойства супертаблиц могут переопределяться (например, опции хранения)

  • Операции SELECT, UPDATE и DELETE, примененные к супертаблице, распространяются также и на все ее подтаблицы

  • Конструкция ONLY



Informix Universal Server

  • Новые базовые типы данных можно определять одновременно с введением специальных алгоритмов хранения, доступа и индексирования, которые отличаются от стандартных алгоритмов, реализованных в сервере

  • Для введения нового базового типа данных с нестандартными методами доступа нужно определить набор серверных функций, реализующий для нового типа алгоритмы доступа, просмотра, выделения памяти и т.д.

  • Эти функции должны быть написаны на языке C и скомпилированы в объектный формат

  • Далее надо описать новый базовый тип данных, и указать функции, реализующие для этого типа алгоритмы извлечения и записи на диск значений данного типа

  • Модули DataBlade



Oracle8

  • Июнь 1997 г.

  • Основные доработки: Oracle 9i (2002 г.); наследование и другие возможности, соответствующие SQL:1999

  • Объектные типы – аналог типа записи в IUS

  • CREATE TYPE <имя типа> AS OBJECT ( <имя поля> <тип поля>, . . . )

  • Для доступа к отдельным полям значений объектного типа используется точечная нотация



Oracle8

  • Методы объектных типов

  • Функции или процедуры, написанные на PL/SQL, Java, C или другом языке и сохраненные в БД или вне ее

  • Методы-члены

  • Статические методы

  • Методы сравнения

  • Сравнение объектов может производиться с помощью методов вида MAP или вида ORDER



Oracle8

  • Метод типа MAP принимает в качестве параметра объект некоторого объектного типа, а возвращает значение одного из встроенных типов, которое может использоваться в операциях сравнения и сортировки

  • Метод типа ORDER сравнивает два объекта и возвращает –1, если первый объект меньше второго, 0, если объекты равны, и 1, если первый объект больше второго

  • Если при определении объектного типа метод сравнения не задан, то объекты этого типа можно сравнивать только на равенство/неравенство, причем объекты не должны содержать элементов типа LOB



Oracle8

  • Объектная таблица – таблица, строки которой имеют объектный тип

  • В Oracle8 не поддерживалось наследование, но в Oracle8i появилась возможность наследования таблиц, но без поддержки параллельной иерархии наследования объектных типов

  • Объектные представления



Oracle8

  • Строки объектных таблиц называются строчными объектами (row objects)

  • Для всех строчных объектов обеспечивается возможность уникальной идентификации

  • Столбец любой таблицы может быть определен на встроенном типе REF

  • Значения этого столбца являются своего рода указателями на строчные объекты той же самой или другой объектной таблицы

  • Система не берет на себя ответственность за согласование ссылок; за это отвечают пользователи

  • Поддерживается встроенная функция REF, позволяющая получить значение объектного идентификатора указанной строки

  • Наличие в объектной таблице столбцов ссылочного типа позволяет в ряде случаев упрощать формулировку запросов (с духе путевых выражений ODMG)



Oracle8

  • Типы коллекций: табличные типы (table types) и типы массивов

  • CREATE TYPE <имя типа> AS TABLE OF <тип элемента>

  • Точечная нотация для доступа к вложенным таблицам

  • CREATE TYPE <имя типа> AS VARRAY ( <литеральное натуральное число> ) OF <тип элемента>

  • На уровне прямого SQL можно работать только с массивами целиком

  • Возможность привести в запросе (или другом операторе SQL) тип массива к табличному типу



DB2 Universal Database

  • Конец 1997 г.

  • Базовые идеи объектно-реляционных расширений были заложены в продукте DB2 for Common Servers, выпущенном в 1995 г. (статья Дона Чемберлина)

  • BLOBы, триггеры, UDF, distinct types, экстендеры

  • Постепенное наращивание возможностей в следующих выпусках



DB2 Universal Database

  • Механизм структурных типов с самого начала включал не только возможность определения типов со структурой, но и средства определения иерархий типов и иерархий таблиц

  • Допускалось использование “ссылок” для определения связей между объектами и навигации от одного объекта к другому

  • Методы очень похожи на UDF в том отношении, что они могут быть написаны на SQL или на внешнем языке, например, на Java или C

  • Но методы всегда ассоциируются с некоторым структурным типом, и их вызовы производятся в синтаксисе, отличном от синтаксиса вызова UDF



DB2 Universal Database

  • При определении типизированной таблицы нужно явно специфицировать дополнительный столбец, в котором будут храниться значения объектных идентификаторов (OID) каждого объекта (строки), содержащейся в таблице

  • Столбец OID создается как первый столбец таблицы, и за ним следуют столбцы, соответствующие атрибутам типа таблицы

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

  • Все строки подтаблиц доступны через запрос, адресуемый к их супертаблице

  • Возможности OUTER и ONLY

  • D запросах на DB2 SQL можно использовать путевые выражения, но не в “точечной”, а в “стрелочной” нотации



DB2 Universal Database

  • Объектные представления – это виртуальные таблицы, которые могут обладать структурой и поведением, отличным от структуры и поведения базовых таблиц, лежащих в основе этих представлений

  • Как и в случае типизированных таблиц, определение объектного представления основывается на определении структурного типа

  • Объектные представления можно использовать для ограничения доступа к подмножеству строк иерархии таблиц или для сокрытия некоторых столбцов этой иерархии

  • Долгое время не поддерживались типы коллекций, но теперь DB2 UDB более всех соответствует стандарту SQL



Коротко о предпосылках ОРСУБД

  • Манифест баз данных третьего поколения (1990 г.)

  • В конце 80-х Вон Ким основал компанию UniSQL, выпустившую в 1991 г. первую версию продукта UniSQL, который Вон Ким стал называть объектно-реляционной системой

  • Четыре принципа:

  • Значениями атрибутов отношений могут быть не только литеральные значения, но и объекты;

  • Значения атрибутов отношений не обязательно являются атомарными;

  • При построении таблиц (классов) может использоваться механизм наследования;

  • Классы включают операции



Коротко о предпосылках ОРСУБД

  • Майкл Стоунбрейкер

  • Ingres и Postgres

  • В Postgres допускалось хранение в полях отношений данных абстрактных, определяемых пользователями типов

  • В 90-е гг. Стоунбрейкер создал компанию Illustra, основной целью которой был выпуск коммерческого варианта СУБД Postgres, получившего название Illustra

  • В этой системе поддерживались основные идеи Postgres, но уже присутствовала и поддержка языка SQL



Объектно-реляционные базы данных и язык SQL

  • SQL3, SQL:1999, SQL:2003

  • При определении объектной модели SQL участники процесса стандартизации тщательно проанализировали ряд других языков и систем с целью выяснения достоинств и недостатков их объектных моделей

  • Выработанная объектная модель похожа на объектную модель языка Java, но при этом адаптирована к природе языка SQL как языка СУБД с наличием стабильно хранимых метаданных и данных



Объектно-реляционные базы данных и язык SQL

  • Два основных отличительных компонента – структурные, определяемые пользователями типы данных (User Defined Type – UDT) и типизированные таблицы (Typed Table)

  • Первый компонент позволяет определять новые типы данных, которые могут быть гораздо более сложными, чем встроенные типы данных языка SQL

  • Второй компонент – типизированные таблицы – позволяет определять таблицы, строки которых являются экземплярами (или значениями) UDT, с которым явно ассоциируется таблица



SQL как модель данных

  • SQL – большой и «многослойный» язык

  • Однако, если сопоставлять возможности SQL с возможностями реляционной модели данных, можно установить, что в настоящее время в спецификации SQL представлена законченная модель данных, отличающаяся от реляционной поддержкой мультимножеств и неопределенных значений

  • Развитые возможности структуризации (включая полную систему типов), манипулирования данными и поддержки ограничений



Гармонична ли «объектная» часть модели данных SQL?

  • Далее исключительно личная точка зрения

  • Та часть расширений, которая относится к системе типов (типы коллекций, UDT, наследование и т.д., кроме ссылочных типов), вполне гармонична и не выходит за пределы даже реляционной модели

  • Ссылочные типы, типизированные таблицы и представления, поддержка путевых выражений вызывают подозрения



Гармонична ли «объектная» часть модели данных SQL?

  • Типизированные таблицы и представления позволяют писать запросы в стиле OQL

  • Но может ли грамотный пользователь забыть про скрытые внешние ключи и соединения?

  • Действительно ли различия между прямой и ассоциативной адресацией не являются существенными?

  • Вопрос, заслуживающий исследования

  • Что скажет новый стандарт объектной модели данных?

  • http://www.omg.org/cgi-bin/doc?mars/2006-2-18

  • Request for Information (RFI)



Кто и как использует ОРСУБД?

  • Используют мало возможностей

  • Борис Новиков: хранимые процедуры, функции, пакеты

  • Нет известных примеров приложений со своими типами данных

  • Совсем неизвестны приложения с типизированными таблицами

  • Положительный пример Oracle Express

  • Но все делают сами производители

  • Почему?



Проблемы использования ОРСУБД

  • Мне кажется, что дело не в «объектности»

  • Слишком много возможностей

  • Как распределять функциональную нагрузку между сервером баз данных, сервером приложений и приложением?

  • Что теперь означает «независимость базы данных от приложения»?



Проблемы использования ОРСУБД

  • Даже если от этого отвлечься

  • Когда и как использовать типы коллекций?

  • Нет методологии

  • Нужно ли проектировщику знать об особенностях реализации, например, вложенных таблиц?

  • Аскетичность Кодда понятнее сегодняшнего богатства

  • Аналогичные проблемы в базах XML-данных



Каковы перспективы?

  • Сделано очень много

  • Пропасть не должно

  • Надеюсь, что с помощью исследовательского сообщества удастся решить проблемы и привлечь разработчиков к использованию ОРСУБД



Похожие:

Объектно-реляционные базы данных: прошедший этап или недооцененные возможности? Сергей Кузнецов iconОсновные понятия баз данных. Базы данных и системы управления базами данных База Данных
Бд структурированный организованный набор данных, описывающих характеристики каких-либо физических или виртуальных систем
Объектно-реляционные базы данных: прошедший этап или недооцененные возможности? Сергей Кузнецов icon«Базы данных» Что такое Базы данных?
«Множество данных, организованных для быстрого и удобного поиска и извлечения» С. А. Бешенков
Объектно-реляционные базы данных: прошедший этап или недооцененные возможности? Сергей Кузнецов iconЛекция №1 : Введение в базы данных Лекция №1 : Введение в базы данных Учебные цели занятия: Изучить: основные понятия теории баз данных
К. Дж. Дейт. Введение в системы баз данных, 7-е издание.: Пер с англ. М.: Издательский дом «Вильямс», 2001. 1072 с., ил
Объектно-реляционные базы данных: прошедший этап или недооцененные возможности? Сергей Кузнецов iconБазы данных 02/25/13
Для хранения бд может использоваться как один компьютер, так и множество взаимосвязанных компьютеров. Если различные части одной...
Объектно-реляционные базы данных: прошедший этап или недооцененные возможности? Сергей Кузнецов iconI этап – организационный I этап – организационный
Разработка нормативной базы : приказ о проведении мониторинга и создании рабочей группы
Объектно-реляционные базы данных: прошедший этап или недооцененные возможности? Сергей Кузнецов iconПоказать преимущества и основные возможности использования модульной объектно-ориентированной динамической обучающей среды
Слово «Moodle» это акроним слов «Modular Object-Oriented Dynamic Learning Environment» (Модульная объектно-ориентированная динамическая...
Объектно-реляционные базы данных: прошедший этап или недооцененные возможности? Сергей Кузнецов iconВ. М. Кузнецов, Г. А. Шехтман (Геофизические Системы Данных) V. M. Kuznetsov, G. A. Shekhtman gds
«Роль и место метода всп в количественной интерпретации данных современной сейсморазведки.»
Объектно-реляционные базы данных: прошедший этап или недооцененные возможности? Сергей Кузнецов iconПространственные базы данных Основные характеристики
Представление пространственных объектов в геометрическом пространстве (обычно двух- или трехмерном)
Объектно-реляционные базы данных: прошедший этап или недооцененные возможности? Сергей Кузнецов iconПредвестники новых манифестов управления данными Сергей Кузнецов
Лоуэлл, шт. Массачусетс (сша) До этого собрания в Лагуна-Бич (1989 г.) и Асиломаре (1996 г.)
Объектно-реляционные базы данных: прошедший этап или недооцененные возможности? Сергей Кузнецов iconПроектирование и построение базы пространственных данных в этой главе
Термин база геоданных (бгд) является сокращением от географическая база данных, реляционная база данных, содержащая географическую...
Разместите кнопку на своём сайте:
hnu.docdat.com


База данных защищена авторским правом ©hnu.docdat.com 2012
обратиться к администрации
hnu.docdat.com
Главная страница