И какой из них, собственно, будет расширяться? Масштабироваться? Каким, в конце концов, пользоваться? Мы обратились в Informix и Oracle с этими вопросами. Мнения представителей этих двух компаний резко разошлись.
Пришло время прояснить ситуацию. В последние месяцы Informix Software занимается распространением дезинформации, стремясь создать впечатление, что в области баз данных происходят важные изменения. Послушать Informix - так выходит, что она определила новый класс баз данных, которые могут делать все и для всех, и что такой продукт действительно уже существует.
Ничего более фантастического и придумать нельзя.
Компания Oracle в феврале прошлого года выпустила первый в мире Oracle Universal Server, ядром которого является база данных Oracle 7.0. Он стал первой системой управления базами данных общего назначения, содержащей поддержку мультимедийных данных и возможностей оптимизации для новых классов приложений, таких как хранилища данных.
Сейчас Oracle Universal Server задействован тысячами потребителей во всем мире. Oracle также заканчивает тестирование Oracle Universal Server следующего поколения, в основе которого лежит технология баз данных Oracle 8.0.
Informix же тем временем выпускает свой первый Informix Universal Server (IUS). Ту его версию, которая была представлена в декабре, любая компания позволила бы себе назвать только бета-версией. Продукт тестировался всего несколько недель; работает на немногих платформах; консультации обеспечиваются только в течение месяца после приобретения, и он не годится для работы реальных мощных приложений.
Отсюда следует вывод: у Oracle продукт есть, а у Informix его нет.
Итак, что представляет собой универсальная СУБД? Ее нельзя назвать только объектно-реляционной. Равно как исключительно мультимедийной или расширяемой. С нашей точки зрения, универсальная СУБД - это все вместе. Иными словами, она поддерживает следующие возможности:
Поддерживая все эти требования в одной системе, универсальная СУБД способна настраиваться на новые классы приложений - тем самым сокращаются затраты на обучение и администрирование нескольких СУБД, ее заменяющих.
Теперь сравним Oracle и Informix.
Мультимедийные типы данных. Поддержка новых типов данных, таких как текст, изображения, видео и пространственная информация, становится все более актуальной для многих приложений, в первую очередь для приложений, ориентированных на Internet. В Oracle Universal Server встроена поддержка мультимедийной информации в ядре базы данных. Oracle позволяет работать с наиболее важными типами данных и интегрирует их, обеспечивая тем самым высокую производительность и надежность.
Интеграция мультимедиа-информации на высоком уровне поддерживается в Oracle Universal Server уже больше года и реализована в потребительских узлах World Wide Web, обучающих системах и других приложениях. Oracle Universal Server предлагает это уже сегодня. IUS, увы, - нет.
Расширяемость. Расширяемость предполагает наличие механизма, за счет которого независимые компании могут наращивать возможности базового продукта. К примеру, расширяемость на клиентских платформах, таких как браузеры, принимает форму модулей дополнения. Oracle выдвигает Network Computing Architecture, которая предлагает надежную, высокопроизводительную среду, обладающую расширяемостью для клиентов, сервера приложений и сервера баз данных, что позволяет независимым компаниям добавлять функции на любом уровне архитектуры.
Расширяемость в основном обеспечивается на промежуточном уровне (уровне приложений), а не на сервере данных. И поскольку Oracle предоставляет встроенную поддержку большинства популярных новых типов данных, средства этого уровня будут работать быстро и надежно, а в дальнейшем должны способствовать сокращению потребности в расширении сервера данных. Там, где требуется расширяемость, Oracle предлагает открытый и надежный механизм картриджей данных.
Подход Informix позволяет "сваливать" в базу данных что угодно. Это делает ядро базы данных беспомощным перед возможными ошибками во всех подключенных программах независимых компаний. В конце концов, такая политика приведет к разрушению чьей-либо критически важной базы данных - это случится тогда, когда IUS действительно начнет работать с реальными базами данных. Таким образом, перекладывая на плечи независимых компаний реализацию большей части новых функциональных возможностей, Informix превращает поддержку пользователей в сплошные муки. К кому вы обратитесь, если в ваших бедах виноват DataBlade?
Oracle несет ответственность за большинство новых важнейших возможностей и предлагает разнообразный и безопасный подход к расширению. Informix ничего подобного предоставить не может.
Разнообразие моделей данных. Модель данных дает пользователям возможность наглядно представить себе организацию данных. Oracle Universal Server расширяет реляционную базу данных для того, чтобы включить в ее состав многомерные модели данных. В версии Oracle 8.0 архитектура Oracle Universal Server изменена в соответствии с SQL 3 и имеет внутреннюю поддержку объектных моделей данных.
Oracle планирует создать объектный доступ ко всем реляционным данным. У Informix таких планов нет.
Многочисленные типы приложений. Oracle Universal Server был предназначен для выполнения весьма строгих требований приложений интерактивной обработки транзакций (OLTP), поэтому его расширили до поддержки хранилищ данных, обрабатывающих сложные запросы. С самого начала все специализированные оптимизации в СУБД общего назначения включали в себя индексирование побитовых карт, "звездообразную" модель запросов, параллельную обработку запросов и другие методы, ориентированные на высокопроизводительные приложения поддержки принятия решений.
Итак, чье решение лучше? У Informix нет единого продукта, который действительно можно было бы назвать универсальным. Фактически, компания предлагает три совершенно непохожих друг на друга продукта:
Согласно оптимистическим прогнозам руководителей компании Informix, продукт Informix-Universal Server (который, возможно, стоило назвать Informix-Extensible Server) будет предложен вниманию широкой публики к середине года. А объединение трех перечисленных выше продуктов в IUS не планируется по крайней мере до конца 1998 года (а скорее всего, до 1999 года).
С начала прошлого года Oracle Universal Server напрямую поддерживает мультимедийные типы данных, многочисленные модели данных и многочисленные типы приложений. Его можно использовать на любом виде компьютерной архитектуры - от однопроцессорных систем и SMP до кластеров, MPP и Non-Uniform Memory Access, причем практически с любой операционной системой. В последующие месяцы будет предложена полностью протестированная версия второго поколения Oracle Universal Server, которая работает на всех платформах. Oracle и независимые компании также представят многофункциональные инструментальные средства разработки и управления системами.
Если вы хотите иметь действительно универсальную СУБД, т. е. один продукт, который делает все - его можно найти сегодня в Oracle. У Informix такого нет.
Джерри Хелд - первый вице-президент Server Technologies Division компании Oracle. До этого он 18 лет проработал в Tandem Computers сначала директором по технологиям, а затем первым вице-президентом по корпоративной стратегии. Позже перешел в David Sarnoff Laboratories. Имеет степень доктора по компьютерным наукам Университета Калифорнии (Беркли), где занимался проектированием системы управления реляционной базой данных Ingres.
Где же этот хваленый Универсальный Сервер?
Майкл СтоунбрейкерДавайте все-таки выясним все до конца. Истинно универсальная серверная система добавляет в СУБД SQL объектно-реляционные функции, такие как расширение базовых типов, определенные пользователем функции, поддержку сложных объектов, свойства наследования и полиморфизм. Это помогает пользователям управлять всеми данными, а не только числами и символьными строками. Другими словами, универсальная серверная система вводит в СУБД возможности, которые давным-давно имеются в объектно-ориентированных языках программирования, таких как C++ и Smalltalk.
Таким образом, универсальную серверную архитектуру предлагает только Informix Software. Единственную объектно-реляционную СУБД, работающую на многочисленных платформах Unix, выпускает Informix (причем в следующем квартале эта система будет действовать и под Windows NT). Полнофункциональная, объектно-реляционная СУБД - это то, что обеспечивает реальную универсальную серверную систему. Она представляет собой единый, интегрированный механизм с внутренней поддержкой расширений типов данных (то, что мы называем модулями DataBlade).
Informix Universal Server (IUS) располагает всеми функциями реляционной СУБД - имеет функции параллельной обработки и разбиения данных, поддержку целостности данных, совершенное управление распределенной базой данных и тиражирование данных. IUS предоставляет организациям возможность управлять всеми своими данными, в том числе и сложными, насыщенными видами информации.
Одним словом, Informix реализует программу рынка баз данных.
На сегодняшний день у Oracle нет объектно-реляционной СУБД, не появится она и после выхода Oracle 8.0. Более того, мы перешагнем рубеж тысячелетия прежде, чем в состав Oracle 8.1 и Oracle 8.2 войдет технология картриджей данных.
Oracle, ставшая олицетворением страха, неопределенности и сомнений, весь прошедший год пускала пыль в глаза, скрывая истинное положение дел. А когда был подготовлен Oracle 8.0 (между прочим, объявленный четыре года назад), стало ясно, что у Oracle нет технологии объектно-реляционной базы данных.
IUS - это полнофункциональная объектно-реляционная СУБД, которая поддерживает все объектно-реляционные конструкции, в том числе расширение базовых типов, определенные пользователем функции в разнообразных языках программирования, наборы объектов, свойства наследования и полиморфизм. Кто угодно в любой момент времени в IUS может добавить новые виды объектов. Сейчас существует 29 модулей DataBlade, и десятки новых готовы к выпуску.
IUS можно приобрести уже сейчас. Универсальный Сервер используется для создания гибких, всеобъемлющих решений масштаба предприятия такими ведущими компаниями, как Credit Suisse First Boston, Sabre Decision Technologies и GDE Information Systems.
Что касается Oracle, то сейчас у нее есть четыре предложения для обеспечения расширяемой функциональности. Первое - это Oracle 7.3, РСУБД с жесткой поддержкой четырех дополнительных видов объектов за счет сочетания отдельных серверов и имитации клиентов. Поддержка SQL ограничивается этими четырьмя видами расширений. Хотя Oracle 7.3 продается как "универсальная серверная" система, она не включает в себя ни один из атрибутов объектно-реляционной системы, а именно - возможности расширения типов, определения пользователями собственных функций, поддержки сложных объектов, наследуемости или полиморфизма. Таким образом, Oracle 7.3 нельзя сравнивать с предложением Informix.
Oracle 7.3 вводит четыре дополнительных типа данных. К сожалению, процесс программирования нескольких дополнительных типов данных не соответствует требованиям большинства потребителей. Тут необходим механизм расширения, благодаря которому независимые компании могут добавлять любой вид объектов к ядру SQL. Именно это делает IUS.
Вторая система Oracle, Oracle 8.0, находится на этапе бета-тестирования и должна появиться к концу года. Секрет Полишинеля состоит в том, что Oracle 8.0 - это главным образом версия, обеспечивающая масштабируемость и производительность и предназначенная для исправления недостатков Oracle (например отсутствие разбиения данных). Таким образом, она имеет весьма ограниченную поддержку объектов по сравнению с Oracle 7.3. Объекты, которые поддерживает Oracle 8.0 - это ряды чисел и строки символов.
Пока в Oracle 8.0 предусмотрено только ограниченное наследование, а полиморфизма нет и в помине. В силу чего она не может конкурировать с истинной объектно-реляционной СУБД, каковой является IUS.
Третье предложение Oracle - Network Computing Architecture (NCA). Она включает в себя понятие картриджей данных. При помощи NCA одна прикладная программа может вызывать вторую, которая тем самым становится "дополнением" для первой. Модули дополнения полезны при создании компонентных приложений. Но они не являются объектно-реляционными СУБД, обеспечивающими управление и интеграцию полного набора хранимых объектов. Сравнивать NCA с IUS совершенно бессмысленно.
Наконец, картриджи данных, по-видимому, появятся в Oracle 8.1 и Oracle 8.2, которые, как планируется, будут выпущены в 1999 году. Вот тогда Oracle наконец предложит правдоподобный объектно-ориентированный сервер. Однако трудно сравнивать IUS, который уже выпускается, с системой, проектирование которой еще не закончено.
Итак, вот некоторые заключительные выводы относительно подходов, используемых этими компаниями:
Объектно-реляционные возможности Oracle 7.3 и 8.0, к сожалению, не отвечают существующим требованиям, а NCA вообще не является объектно-реляционной СУБД. И трудно сказать, какого рода объектно-реляционная функциональность будет предложена в Oracle 8.1 или 8.2, поскольку они пока только проектируются. В отличие от них IUS - это полнофункциональная объектно-реляционная СУБД.
IUS можно приобрести уже сейчас, в то время как Oracle выпустит нечто подобное не раньше 1999 года, и даже тогда вряд ли это можно будет назвать достойной системой.
Ядро IUS воспринимает числа, символьные строки и объекты на всех уровнях этой системы. Это значит, что все - оптимизатор, механизм сортировки, модуль исполнения и методы доступа - являются "ориентированными на объекты". Только при такой интеграции можно добиться фильтрации, сортировки и индексирования объектов. Oracle, возможно, предложит более высокую степень интеграции в своих картриджах данных, которые не поддерживают ни одну из вышеупомянутых функций.
Картриджи данных Oracle также можно будет затребовать с использованием протокола Common Object Request Broker Architecture (CORBA). В отличие от них модули DataBlade обычно вызываются при помощи локальных вызовов процедур (LPC). Наш опыт работы с 1500 лицензиатами Illustra показывает, что в конечном итоге все они применяют LPC; удаленный вызов процедур на порядок снижает скорость работы приложений при увеличении их размеров. Oracle выбрала ужасающе дорогой подход.
Модули DataBlade абсолютно надежны. Все они соответствуют нашим весьма строгим стандартам качества. Не было ни одного зарегистрированного случая, чтобы модуль DataBlade явился причиной сбоя или разрушения данных.
Внутренние расширения Oracle (такие как Context), если их тщательно протестировать, также достаточно надежны. Картриджи данных независимых производителей, однако, будут использовать CORBA и серьезно снизят производительность. Oracle, таким образом, относится к своим партнерам как к "гражданам второго сорта".
Сейчас компаниям требуются более мощные технологии, которые способны превратить информационные ресурсы в мощную движущую силу бизнеса.
Всем этим требованиям отвечает IUS - единый надежный сервер, который легко можно научить обрабатывать новые, разнообразные типы данных.
Майкл Стоунбрейкер - директор по технологиям компании Informix Software. Он также является основателем компаний Ingres и Illustra Information Technologies и профессором компьютерных наук Университета Калифорнии (Беркли). Недавно был избран в National Academy of Engineering в знак признания его достижений в области разработки и коммерческого распространения модели объектно-реляционной базы данных.