DB2 Online Magazine, August 1997
DB2 V.5 and Oracle 8: What they've Got What They've Not
Joyce Bischoff, President of Bischoff Consulting Inc.
Сергей Кузнецов, Центр Информационных Технологий
IBM и Oracle стремятся к тому, чтобы обеспечить средства управления базами данных, удовлетворяющие всем возможным потребностям: интеграция с World Wide Web; intranets; поддержка сложных типов данных; поддержка всех приложений, связанных с оперативной обработкой транзакций (OLTP) и принятием решений. Хотя многие считают невозможным удовлетворение всех этих требований в одной СУБД, IBM и Oracle добились существенных успехов в этом направлении. Кроме того, обе компании обеспечивают поддержку больших баз данных, параллелизма, разделения данных, высокого уровня доступности и целостности данных.
Компания Oracle объявила продукт Oracle8 в июне 1997 г., а IBM объявила DB2 Universal Database Version 5 (UDB) в декабре 1996 г. Хотя в обоих продуктах компании стремились обеспечить одни и те же возможности, для их реализации применяются разные методы. Существо подхода Oracle8 сосредоточено в движении в сторону чистого объектно-ориентированного подхода. С другой стороны, в UDB v.5 упор делается на интегрированную и масштабируемую поддерку сложных данных за счет средств расширения РСУБД, а также на интеграцию со средством доступа к Web Net.Data.
UDB v.5 содержит встроенную поддержку контекстного поиска в тексте; графических, аудио, видео и других типов данных; временных рядов; пространственных типов данных и т.д. Имеется возможность адресовать один оператор SQL как к традиционным типам данных, так и сложным данным. Потребители или разработчики сторонних компаний могут определять дополнительные типы данных ("расширители" - "extenders"), используя инструментальные средства, поступающие вместе с UDB.
Сложные данные в Oracle8 поддерживаются механизмом "катриджей данных" ("Data Catridges). Хотя в предыдущих версиях Oracle поддерживались текстовые, графические, видео и пространственные типы данных, эта поддержка не была настолько интегрированной, как в DB2. Для "слабого связывания" ("loosely couple") катриджей данных был выбран подход брокеров объектных заявок (Object Request Broker - ORB). Если подход IBM ориентирован на обеспечение большей производительности, то подход Oracle облегчает включение расширений в систему и их отключение от системы. Обе компании работают с независимыми производителями программного обеспечения (Indepedent Software Vendors - ISV), и в обоих продуктах обеспечивается связь с внешними данными.
Oracle использует более широкое определение объектно-реляционного подхода, чем IBM. Подход Oracle существенно более объектно-ориентированный, в то время как IBM сосредотачивается на поддержке объектно-реляционных данных. Тем не менее, по словам специалистов компании Oracle, планируемая полная поддержка наследования и полиморфизма отложена до выпуска версии 8.2.
IBM дает пользователям возможность создания собственных расширителей с использованием инструментального набора разработчика (Software Developer's Kit - SDK), содержащие средства генерации и регистрации определенных пользователями типов данных и функций, написанных на языках Java, Basic, Cobol и Си/Си++. Компания Oracle планировала обеспечить аналогичные возможности в своем проекте Sedona, целью которого являлось создание среды разработки и сборки компонентов сетевой компьютерной архитектуры и картриджей. В настоящее время проект Sedona не обсуждается, но следует заметить, что картриджи данных могут создаваться с использованием Java, JavaScript, Си/Си++, Visual Basic, а также языков, основанных на SQL, и средств Developer/2000.
Пользователи нуждаются в средствах, упрощающих управление всерхбольшими базами данных. Разделение таблиц и индексов необходимо в среде больших баз данных, поскольку позволяет управлять данными на более мелком уровне и обеспечивает основу распараллеливания. UDB v.5 и Oracle8 обладают интеллектуальными возможностями разделения данных. В Oracle не допускается использование в разделенных таблицах столбцов с типами данных LONG, LONG RAW и Large Object (LOB). Кроме того, в Oracle не поддерживаются побитные (bitmap) индексы на разделенных таблицах, так что пользователи должны выбирать либо разделенное хранение таблиц, либо побитную индексацию. В DB2 разделение было возможно и в более ранних версиях, и упомянутые ограничения не устанавливаются.
OLAP (On-Line Analitical Processing - оперативная аналитическая обработка) и многомерный анализ представляют собой важные факторы систем поддержки принятия решений. Поддерживаемые в Oracle звезднообразные запросы с соединениями (star-query join) обеспечивают многомерное представление данных путем получения Декартова произведения таблиц измерений с последующим соединением результата с таблицей фактов. В DB2 используется модифицированный оптимизатор, использующий динамические побитные индексы и предварительное чтение списков для выборки строк из многомерной таблицы фактов. Использование побитных индексов позволяет повысить эффективность доступа к многомерным данным. В DB2 v.5 побитные индексы могут создаваться динамически, в то время как в Oracle8 они должны быть предопределены. (Важно заметить, что реализация побитных индексов IBM и Oracle существенно различается.) Кроме того, в DB2 поддерживаются новые функции SQL ROLLUP и CUBE, облегчающие многомерный анализ. Пользователи могут "закатить" данные на более высокий уровень агрегации и видеть данные в структуре куба, а не в традиционных табличных структурах. Эти возможности расширяют функциональность языка SQL и облегчают жизнь пользователей. Компания Oracle интегрирует c Oracle8 продукт IRI Express для развития возможностей многомерного анализа. В ближайшем будущем IBM также будет обеспечивать полную поддержку многомерных данных за счет интеграции UDB с сервером Essbase OLAP компании Arbor Software.
Для поддержки больших баз данных существенна поддержка параллельного выполнения операций вставки, модификации и удаления данных, и такая поддержка присутствует в обоих продуктах. Кроме того, в продуктах поддерживается параллельное сканирование индексов, но в Oracle имеются некоторые ограничения, отсутствующие в DB2:
В обоих продуктах обеспечивается автоматические, гибкие, управляемые сервером средства архивации и восстановления. В Oracle поддерживается инкрементальная архивация, идеально подходящая для больших, редко обновляемых таблиц; однако при восстановлении до применения инкрементальных копий должна быть использована начальная полная копия, т.е. при восстановлении можно сэкономить лишь небольшое время. В DB2 нет средств инкрементальной архивации, но допускается создание оперативных копий; при выполнении соответствующей процедуры архивации пользователи могут продолжать использовать базу данных. Кроме того, архивные копии могут создаваться на уровне табличных пространств, так что архивация может затрагивать только те таблицы, которые действительно изменялись - реальное преимущество для среды, требующей высокого уровня доступности данных. Реорганизация данных в Oracle8 производится путем комбинированного использования утилит экспортирования и импортирования данных; в DB2 имеется утилита реорганизации.
Оба продукта содержат базовый набор средств администрирования, позволяющих вводить команды СУБД и операционной системы; управлять сценариями; обрабатывать предупреждающие и аварийные сообщения; просматривать объекты. Пакет UDB v.5 содержит монитор событий (Event Monitor), монитор производительности (Performance Monitor), средства конфигурирования клиентской и серверной частей системы (Configuration Assistants), средство управления ресурсами (Resource Governor) и управляющий центр администрирования баз данных. Oracle имеет аналогичные инструменты: Oracle Expert, часть Oracle Enterprise Manager, производящий мониторинг событий, и Oracle Performance Pack - эквивалент Performance Monitor в DB2; однако эти средства не поставляются вместе с Oracle8. Раньше IBM критиковали за недостаточную развитость средств администрирования, но теперь они настолько улучшены и настолько хорошо интегрированы с UDB v.5, что практически сравнялись по возможностям со средствами Oracle.
Что касается средств разработки приложений, то Oracle обеспечивает развитый набор таких средств, аналога которому IBM пока не имеет. Средства Oracle включают Developer/2000, Designer/2000 и Power Objects. Для разработки приложений IBM предлагает VisualAge для Java и для Basic, а также Си/Си++. VisualAge для Basic не интегрирован с DB2.
Если сила Oracle заключается в средствах разработки, то IBM выигрывает в возможностях оптимизации. Хотя в обоих продуктах оптимизаторы используют оценки стоимости плана выполнения запроса, оптимизатор DB2 в дополнение к размерам таблиц и возможным путям доступа принимает во внимание скорость центрального процессора и дисковых устройств, а также полностью переписывает запросы, которые можно выполнить более эффективно в другой формулировке. Oracle продолжает работать над своим оптимизатором, пытаясь навести мосты между прежним оптимизатором, основанным на использовании правил, и средством, которое позволило бы пользователям включать в операторы SQL подсказки, ориентирующие оптимизатор на использование более эффективных путей доступа.
Явление Internet вызывает существенные изменения в способах ведения бизнеса. В Сети все равны. Трудно узнать, является ли бизнес-партнер в Internet большой многонациональной корпорацией или лавочкой, расположенной в подвале. В этих условиях конкуренция должна основываться на доступности продуктов, уровне цен и качестве сервиса. DB2 v.5 и Oracle8 встречают появление новой культуры рынка, обеспечивая развитую поддержку Web-технологии. Пакет DB2 включает Net.Data, мощную поддержку языка Java и средства интероперабельности со многими программными средствами поддержки Internet производства как IBM, так и других компаний. Oracle также предлагает развитую поддержку Web, но не поддерживает хранимые процедуры и определенные пользователями функции, написанные на языке Java. Продукт Web Server, существующий со времени выпуска Oracle7, очень похож на Net.Data и обеспечивает сопоставимые возможности за счет использования брокера заявок web (web request broker). Net.Data и Oracle Web Server упрощают написание интерактивных Web-приложений путем расширения языка HTML средствами определения логики, переменных, вызовов программ и производства отчетов. Поддерживаются условная логика, HTML и подстановка переменных, а также VRML.
В DB2 v.5 включен продукт DataPropagator, позволяющий производить реплицирование мгновенных снимков (snapshot) или обновляемых данных и распространяющий изменения к репликам. Поскольку изменения основываются на журнальных записях, это не сказывается на операционной рабочей загрузке. Кроме того, в DB2 v.5 появились существовавшие ранее в Oracle средства симметричной репликации и разрешения конфликтов. В Oracle8 улучшен процесс обновления реплицированных данных за счет внутреннего использования основанных на триггерах методов Oracle7. Используемая в DB2 и Oracle техника распространения изменений продолжает существенно различаться, причем у каждого из подходов имеются свои плюсы и минусы.
Oracle8 обладает очень высоким уровнем переносимости, будучи доступен на более двенадцати различных платформ. DB2 ориентируется только на наиболее популярные платформы. Что касается масштабируемости, то оба продукта могут масштабироваться от однопроцессорных машин до симметричных мультипроцессоров и даже до кластеров и массивно параллельных процессоров. Общий программный код DB2 v.5 используется для платформ NT, UNIX и OS/2. Однако в семействе DB2 имеется еще три разновидности исходного кода: DB2 для OS/390, VM/VSE и OS/400. Еще одним отличием в версиях является то, что в версиях для мейнфреймов не поддерживаются мультимедийные расширения. (Планируется их появление в следующей версии DB2 для OS/390.) Оба продукта будут поддерживать большое число пользователей. Для DB2 v.5 производилось тестирование с 64,000 одновременно работающих пользователей. Для Oracle8 обещается поддержка десятков тысяч пользователей, но тестовые результаты пока недоступны.
В соответствии с данными компании Dataquest Inc., в мире UNIX IBM продала только 3% лицензий по сравнению с 54% компании Oracle. Частично это объясняется тем, что IBM всегда ориентировалась на очень большие системы переднего края и только теперь начала экспансию в сторону систем среднего и малого класса. Тем не менее, наблюдается существенный рост доходов IBM по продаже систем для сред UNIX и NT. Для Oracle ситуация весьма отличается. Компания начинала со средних систем, а теперь одинаково хорошо работает на S/390 и на персональных системах (хотя неясно, какова стратегия Oracle по отношению к S/390, если учитывать традиционное доминирование IBM на этой платформе). Обе компании усиленно инвестируют версии продуктов для Windows NT.
UDT v.5 и Oracle8 представляют собой существенное продвижение в семействе наиболее популярных промышленных СУБД. Поскольку многие возможности, появившиеся в Oracle8, уже существовали в предыдущих выпусках DB2, компания Oracle все еще выглядит как догоняющая. С другой стороны, хотя DB2 включает интегрированные средства администрирования и репликации данных, она отстает в отношении интегрированных средств разработки. На сегодня основной мощью Oracle являются переносимость, средства разработки и доля рынка систем среднего уровня; IBM продолжает лидировать в области оптимизации, распараллеливания и на рынке систем переднего края.