Обзор статьи "DB2 V.5 and Oracle 8: What they've Got What They've Not"
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.
Параллельный язык манипулирования данными (Data Manipulation
Language - DML) SQL
Для поддержки больших баз данных существенна поддержка
параллельного выполнения операций вставки, модификации и удаления
данных, и такая поддержка присутствует в обоих продуктах. Кроме
того, в продуктах поддерживается параллельное сканирование
индексов, но в Oracle имеются некоторые ограничения,
отсутствующие в DB2:
- Параллельное выполнение операторов DML не производится, если
имеются определенные ограничения целостности: каскадное удаление;
ограничение по ссылкам таблицы к самой себе; ограничения с
отложенной проверкой
- Для параллельно выполняемых операторов DML не поддерживаются
триггеры
- Параллельное выполнение не происходит при наличии объектных или
LOB-столбцов.
Архивация, восстановление, реорганизация
В обоих продуктах обеспечивается автоматические, гибкие,
управляемые сервером средства архивации и восстановления. В
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 подсказки,
ориентирующие оптимизатор на использование более эффективных
путей доступа.
Поддержка Web
Явление 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 продолжает лидировать в области
оптимизации, распараллеливания и на рынке систем переднего края.