В своем первом выпуске 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, и именно так следует представлять его на рынке.
8.1.4.3. 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).