Пиши Дома Нужные Работы

Обратная связь

Преобразование реляционного подхода к организации баз данных в объектно-реляционный подход

Мы уже отмечали в начале этого раздела, что радикальным решением всех проблем, свойственных реляционным системам, был бы революционный переход к объектно-ориентирован- ной организации как баз данных, так и систем управления ими. Мы перечислили ряд причин, по которым массовых потребителей баз данных не устроила эта возможная революция. Но дело не только в этом. В конце 1989 г. группа ведущих специалистов в области объектно-ори- ентированных баз данных опубликовала "Манифест объектно-ориентированных баз данных" (перевод на русский язык опубликован в журнале "СУБД", N 4, 1995 г.).

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

Объектно-реляционный подход возник как эволюционная альтернатива революционному объектно-ориентированному подходу. Заметим, что термин "объектно-реляционные СУБД" вошел в обиход далеко не сразу, и даже сейчас системы соответствующего класса часто характеризуются другими терминами. Точкой отсчета можно считать опубликование в 1990 г. "Манифеста систем баз данных третьего поколения" (перевод на русский язык опубликован в журнале "СУБД", N 2, 1995 г.). В этом манифесте выдвигалась идея и обосновывались преимущества эволюционного развития возможностей СУБД без коренной ломки предыдущих подходов и с сохранением преемственности с системами предыдущего поколения. Частично требования к системам следующего поколения включали просто необходимость реализации давно известных свойств, которые отсутствовали в большинстве текущих реляционных СУБД (ограничения целостности общего вида, триггеры, модификация БД через представления и т.д.). В число новых требований входили полнота системы типов, поддерживаемых в СУБД; поддержка иерархии и наследования типов; возможность управления сложными объектами и т.д.



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

Термин "объектно-реляционная СУБД" был внедрен в обиход Майклом Стоунбрейкером, идейным руководителем проектов свободно распространяемых систем Ingres и Postgres и основателем компании Illustra, выпустившей одноименный коммерческий продукт. (На самом деле, система Illustra является хорошо отлаженным и документированным вариантом Postgres). В Postgres были реализованы многие интересные средства, свойственные системам третьего поколения: поддерживалась темпоральная модель хранения и доступа к данным и в связи с этим был абсолютно пересмотрен механизм журнализации изменений, откатов транзакций и восстановления БД после сбоев; обеспечивался мощный механизм ограничений целостности; имелась возможность хранения в столбцах таблицы вложенных таблиц. Допускалось хранение в полях таблицы данных абстрактных, определяемых пользователями типов, что обеспечивало возможность внедрения в базу данных поведенческого аспекта.

Наконец, ведущие компании-производители СУБД стали использовать для идентификации своих серверных продуктов нового поколения термин "универсальный сервер", имея в виду, что в этих продуктах используется объектно-реляционный подход, а также обеспечиваются возможности расширяемости, интеграции с Internet и т.д.

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

С конца 1996 г. три компании объявили о выпуске серверных продуктов, соответствующих названию "универсальный сервер": Oracle с продуктом Oracle 8, Informix с продуктом InformixUniversalServer и IBM с продуктом DB2 UniversalDatabase. Далее мы приведем краткие характеристики этих систем.

Oracle 8

Компания Oracle заявляла, что Oracle 8 будет уметь делать с объектами все, что умеет делать InformixUniversalServer, и даже больше. Однако это не так в первом выпуске Oracle 8 (этот выпуск был официально объявлен 24 июня 1997 г.). В фокусе Oracle 8 находятся расширенная система типов и поддержка бизнес-объектов; появление других возможностей расширяемости ожидается в версии 8.1. Oracle концентрируется на реализации своей сетевой вычислительной архитектуры (NCA - NetworkComputingArchitecture), и в Oracle 8 вносятся улучшенные возможности производительности, масштабируемости, доступности, репликации, разделения дан- ных и т.д.

NCA - это трехзвенная архитектурная структура, основанная на CORBA (CommonObjectRequestBrokerArchitecture - Общая архитектура брокера объектных заявок). В NCA используются расширяющие компоненты, называемые "картриджами", которые могут разрабатываться Oracle или сторонними поставщиками. Впервые использование картриджей приложений и картриджей баз данных потребовалось в OracleWebApplicationServer для организации связи на основе CORBA. В контексте расширяемой среды данных Oracle обеспечивает компоненты на уровне промежуточного программного обеспечения приложений (например, компонент управления транзакциями в WebApplicationServer) и на уровне универсального сервера (Oracle 8). На объектном уровне Oracle 8 поддерживает объектные представления данных с использованием новых объектных типов и существующих реляционных данных. Кроме того, Oracle 8 поддерживает объектный кэш на стороне клиентов и навигацию между объектами по ссылкам. Транслятор объектных типов отображает объекты базы данных в соответствующие конструкции языка Си.

Далее приводится сводка свойств, имеющихся в Oracle 8 и ожидаемых в версии 8.1:

  • Расширяемая система типов. Поддерживаются объектные типы, типы коллекций (массивы переменного размера и вложенные таблицы) и ссылочные типы. Объектный тип может применяться либо к столбцу, либо к строке и может быть семантически эквивалентен именованному строчному типу SQL-3. Кроме того, Oracle 8 явно связывает с объектными типами методы. Пока поддерживается только один уровень вложенности таблиц (в 8.0) и не реализована полная инкапсуляция определяемых пользователями типов данных. В версии 8.1 будет поддерживаться одиночное наследование. Не предполагается возможность репликации расширенных данных.
  • Определяемые пользователями функции. Скалярные функции, перегрузка и разрешение имени на основе типов параметров, параллельное выполнение функций с определенными пользователями агрегатами (функции столбцов) находятся в стадии обсуждения.
  • Расширяемая система индексации. Поддержка определяемых пользователями индексных структур и индексов на выражениях появится вместе с компонентом DatabaseExtensibilityServices.
  • Расширяемый оптимизатор. Возможность указывать стоимость выполнения определенных пользователями функций и обеспечивать статистику об использовании определенных пользователями данных ожидается с появлением компонента DatabaseExtensibilityServices. К расширенным типам пока не применяются параллельные операции.
  • Большие объекты и внешние данные. LOB могут храниться внутри базы данных или во внешних файлах. Oracle 8 не поддерживает доступа по записи к внешним данным и не гарантирует их целостность. Большие объекты могут быть реплицированы, но таблицы с LOB реплицировать нельзя.
  • Расширяемая языковая поддержка. Определяемые пользователями типы данных и хранимые процедуры пишутся на PL/SQL или Си/Си++, причем подпрограммы на Си/Си++ выполняются вне адресного пространства сервера. Поддержка Java в сервере будет обеспечиваться в DatabaseExtensibilityServices (версия 8.1).
  • Предопределенные расширения. Сервер Oracle 8 поддерживает хранение текстовых, пространственных и видео данных; ожидается появление нового типа данных для хранения графической информации. Компания работает также с несколькими партнерами для тестирования и формализации API для DatabaseExtensibilityServices и разработки картриджей данных.

Как видно, в Oracle 8 компания главным образом сосредоточилась на реализации собственных расширений, которых может оказаться достаточно для начала моделирования бизнес-объектов. Возможности реализации расширений сторонними компаниями менее развиты, чем в продуктах Informix и IBM. Это означает, что пользователи Oracle будут вынуждены более долго ожидать наличия полных наборов строительных блоков для построения новых или улучшения существующих приложений. С другой стороны, развитие продуктов Oracle происходит на основе единой архитектуры NCA, которая закладывает базу расширяемости.

InformixUniversalServer

Компания InformixSoftware приобрела реальные шансы стать лидером сектора объектно-реляционных систем после приобретения компании Illustra в начале 1996 г. (Заметим, что сотрудниками компании стали все основные разработчики СУБД Illustra, включая М.Стоунбрейкера.) Многие авторитетные специалисты компьютерной индустрии скептически относились к решению компании произвести слияние продуктов Informix-OnLine 7.2 и IllustraServer к концу того же года. Однако компания Informix действительно смогла выпустить в конце декабря устойчивую версию InformixUniversalServer, работающую на трех платформах. К лету 1997 г. UniversalServer был доступен на 10 платформах.

Компания сконцентрировалась прежде всего на общей архитектуре универсального сервера. Внимание обращается на средства, обеспечивающие интеграцию с технологией Internet/Web (с применением продукта WebConnect). Затрагиваются вопросы поддержки сложных данных в средствах разработки и приложениях с использованием недавно объявленного продукта DataDirector (приобретенного вместе с компанией CenterViewSoftware в начале этого года). Этот продукт обеспечивает возможность использования развитых сред разработки (Java, PowerBuilder, VisualBasic и др.), доступ к расширениям в духе SQL-3 и, кроме того, доступ к новым типам данных и функциям UniversalServer.

В своем первом выпуске UniversalServer объединяет средства сервера InformixOnLine 7.2 с расширениями, обеспечиваемыми механизмом DataBlade сервера, и языковыми расширениями, основанными на идеях SQL-3. Новые возможности включают следующее:

  • Расширяемую систему типов для интеграции определяемых пользователями типов данных, уточненных типов, абстрактных типов данных, строчных типов и типов коллекций, включая возможность неограниченной вложенности таблиц. Поддерживается простое наследование в иерархии именованных строчных типов. Каждая таблица, основанная на строчном типе, становится типизированной таблицей и может использоваться в этой иерархии. В будущем ожидается появление ссылочных типов и абстрактных типов данных в стиле SQL-3, а также средств репликации данных определяемых пользователями типов.
  • Определяемые пользователями функции - полный диапазон типов функций с поддержкой перегрузки, распознавания нужного тела функции на основе типов параметров и параллельного выполнения функций, когда это оправдано. (Параллельные возможности UniversalServer применимы на симметричных мультипроцессорных платформах; при использовании расширенной параллельной версии InformixOnLine эти возможности распространяются на кластерные архитектуры; на массивно-параллельных платформах объектные расширения пока недоступны.)
  • Расширяемую систему индексирования - R-деревья, применение индексов на основе B-деревьев к определяемым пользователями типам данных, определяемые пользователями индексные структуры.
  • Расширяемый оптимизатор - таблично-управляемый оптимизатор, позволяющий интегрировать определяемые пользователями типы данных, новые индексные структуры и новые методы доступа. Разработчик может указать стоимость выполнения функций определяемого им типа и зарегистрировать новый тип индекса, что включает определение функций, которые используют индекс, интерфейсных подпрограмм для доступа к индексу и стоимости использования индекса. Индексы хранятся под управлением СУБД с соответствующим транзакционным управлением; сторонние поставщики должны сами следить за целостностью внешних индексов. Кроме того, оптимизатор применяет параллельные операции к разделенным данным и индексам.
  • Возможность хранения больших объектов (LOB - LargeObjects) внутри базы данных или во внешних файлах. Пока UniversalServer не гарантирует целостность данных, хранимых во внешних файлах, но Informix имеет на этот счет планы. Интерфейс виртуальной таблицы позволяет регистрировать внешние данные в каталогах базы данных и обращаться к ним таким же образом как если бы они были таблицами, непосредственно поддерживаемыми универсальным сервером.
  • Наличие предопределенных расширений: Informix подрядил много сторонних поставщиков для написания DataBlades - упакованных наборов расширений, относящихся к некоторым прикладным областям (текстовому поиску, управлению графической информацией, финансовому анализу и т.д.). DataBlade интегрируется с ядром IUS на основе специального интерфейса уровня вызовов (DataBladeAPI). К июню 1997 г. планировалось иметь в поставке 20 DataBlade, еще 10 находятся в стадии бета-тестирования, к концу года ожидается иметь около 50 готовых к поставке DataBlade. В настоящее время имеется два режима выполнения DataBlade - в адресном пространстве ядра (это дает наибольшую эффективность) и в отдельном виртуальном процессоре (более безопасный режим).
  • Расширенный набор языков приложений - в дополнение к поддержке разработки пользовательских типов данных на основе собственной среды NewEraInformix теперь обеспечивает новое средство разработки клиентских приложений DataDirector, которое дает возможность связи между данными, контролируемыми приложением, и данными, хранимыми в среде UniversalServer. В этом средстве используются собственные интерфейсы с универсальным сервером (JavaAPI и Си++ API), а не ODBC. Кроме того, DataDirector поддерживает языковые расширения в духе SQL-3.

Одной из проблем компании Informix, связанной с форсированным внедрением объектно-реляционных средств, является сохранение позиции на бизнес-рынке, которую компании удалось занять на основе InformixOnLine 7.x. До слияния с Illustra основное внимание уделялось производительности и масштабируемости на основе разных видов параллелизма, и именно это определяло лицо Informix на рынке. С появлением UniversalServer эти важные качества продуктов отошли на второй план. Кроме того, компания должна принимать во внимание наличие трех разных серверов баз данных - UniversalServer, OnLine и ExtendedParallelServer.

Однако компании первой удалось продемонстрировать возможность эволюционного перехода к объектно-реляционной технологии с сохранением надежного и высокоэффективного управления базами данных. UniversalServer является развитием OnLine, и именно так следует представлять его на рынке.

IBMDB2 UniversalDatabase

Компания IBM ведет исследования в области инфраструктуры расширяемых реляционных баз данных в течение более чем десяти лет. Компания была первой из основных поставщиков, выпустившим на рынок реляционный сервер баз данных с объектными расширениями: DB2 CommonServer 2 (в июле 1995 г.). Теперь IBM готова начать поставки обновленного продукта с новым названием - DB2 UniversalDatabase, представляющего собой слияние начальных объектно-реляционных свойств DB2 CommonServer 2.1 с возможностями параллельной обработки DB2 ParallelEdition 1.2 и доступного на разнообразных мультипроцессорных платформах (симметричных, кластерных и массивно-параллельных). Ключевым моментом является то, что продукты IBM основаны на едином исходном тексте сервера. Это обеспечивает основу новых разработок, тем более что расширения с самого начала базируются на полностью параллельных средах.

Стратегия IBM в области объектно-реляционных баз данных включает четыре основных компонента. Во-первых, универсальная база данных DB2 (UniversalDatabase) находится в стадии бета-тестирования и должна начать поставляться в третьем квартале 1997 г. Во-вторых, разновидность определяемых пользователями типов данных - сильные связи с файлами (robustfilelinks) позволяет DB2 UniversalDatabase активно управлять внешне хранимыми данными с соблюдением требований безопасности и целостности. Реализация этой возможности ожидается к концу 1997 г. Третий компонент стратегии компании - DataJoiner - промежуточное программное обеспечение для доступа к неоднородным базам данных. Этот компонент включает все функциональные возможности сервера DB2, глобальный оптимизатор с расширяемыми знаниями о поддерживаемых источниках данных, возможность компенсировать функциональные различия между этими источниками. В планы компании входит расширение возможностей DataJoiner для работы с объектно-реляционными расширениями. Наконец, IBM разрабатывает компонент объектного слоя, называемый ClientObjectSupport, который обеспечит единое логическое представление всех доступных данных, а также их транзакционную согласованность, управление кэшами клиентов и интеграцию с объектно-ориентированными языками.

Вот сводка расширенных возможностей DB2 UniversalDatabase и средств, которые планируется включить в будущие выпуски:

  • Расширяемая система типов - уточненные типы, абстрактные типы данных и объекты OLE с поддержкой в будущем абстрактных типов данных в стиле SQL-3, строчных типов, типов коллекций, ссылок, множественного наследования и репликации данных.
  • Определяемые пользователями функции - скалярные функции с поддержкой перегрузки функций и нахождения нужного тела функции на основе типов параметров, параллельное выполнение. Ожидается появление табличных функций. Функции могут выполняться внутри адресного пространства сервера для повышения производительности или вне него для обеспечения безопасности.
  • Расширяемая система индексации. IBM обеспечивает свои собственные индексы специального назначения для типов данных, поддерживаемых расширителями DB2 (DB2 RelationalExtenders). В будущих версиях будут поддерживаться определяемые пользователями индексные структуры, навигационный доступ через ссылки и возможность строить индексы на выражениях, на результатах вызовов функций и на атрибутах абстрактных типов данных.
  • Расширяемый оптимизатор. DB2 уже включает основанный на правилах оптимизатор с возможностью выполнять глобальную оптимизацию и преобразования запросов. Планируется расширить интерфейс оптимизатора с тем, чтобы можно было добавлять новые правила. Разработчик может указать стоимость определенной пользователем функции, включая информацию о том, производит ли функция внешние действия. При интеграции с DB2 ParallelEdition оптимизатор также применяет параллельные операции для разделенных данных и индексов.
  • Большие объекты и внешние данные. LOB может храниться внутри базы данных или во внешних файлах. На сегодняшний день DB2 обеспечивает доступ к данным, хранимым вне сервера; в будущих выпусках (к концу 1997 г.) будет гарантироваться и целостность на основе механизма сильных связей с файлами.
  • Расширяемая языковая поддержка. Определяемые пользователем функции могут быть написаны на языках Си, Си++, VisualBasic или Java; хранимые процедуры могут писаться на языках третьего и четвертого поколения и Java. Ожидается появление языковых расширений в стиле SQL-3 для обеих целей.
  • Предопределенные расширения. IBM обеспечивает реляционные расширители для текста, графической информации, видео, аудио и т.д. Компания образует партнерские отношения со сторонними поставщиками для разработки пакетов расширений. Имеется соответствующий набор инструментальных средств.

Текущее состояние продуктов и стратегические планы IBM могут позволить ей занять лидирующие позиции на рынке объектно-реляционных систем. Для этого прежде всего требуется добиться признания и высокого уровня продаж в секторе платформ других компаний (в настоящее время DB2 UniversalDatabase готовится к выпуску на всех платформах IBM, а также HewlettPackard и SunMicrosystems).






ТОП 5 статей:
Экономическая сущность инвестиций - Экономическая сущность инвестиций – долгосрочные вложения экономических ресурсов сроком более 1 года для получения прибыли путем...
Тема: Федеральный закон от 26.07.2006 N 135-ФЗ - На основании изучения ФЗ № 135, дайте максимально короткое определение следующих понятий с указанием статей и пунктов закона...
Сущность, функции и виды управления в телекоммуникациях - Цели достигаются с помощью различных принципов, функций и методов социально-экономического менеджмента...
Схема построения базисных индексов - Индекс (лат. INDEX – указатель, показатель) - относительная величина, показывающая, во сколько раз уровень изучаемого явления...
Тема 11. Международное космическое право - Правовой режим космического пространства и небесных тел. Принципы деятельности государств по исследованию...



©2015- 2024 pdnr.ru Все права принадлежат авторам размещенных материалов.