Объектно-реляционный семинар

Владимир Викторович Пржиялковский

Независимый консультант


4 декабря 1997 г. в помещении МГУ состоялся семинар Московской секции ACM SIGMOD. Темой очередного ежемесячного заседания были "Объектные технологии в реляционных серверах баз данных компаний Informix, IBM, Oracle". Семинар был задуман, и отчасти удался (об этом ниже) как чисто техническое мероприятие, расчитанное на специалистов, и включал для обсуждения следующие темы: в какой мере в современных версиях реляционных СУБД воплощены такие качества, как (1) объектная модель (встроенные типы, абстрактные типы данных, отношения типов и т.д.); (2) объектная архитектура (взаимоотношение реляционной и объектной сред, поддержка распределенных объектных сред); (3) средства определения объектов (определение свойств, связей, операций и т.д.); (4) средства манипулирования объектами (связь с объектными языками программирования, языки запросов и т.д.). Семинар был до некоторой степени необычен как для устроителей, так и для гостей: для первых -- потому что в докладчики были приглашены представители фирм-разработчиков коммерческих СУБД (можно напомнить, что сама ACM представляет собой несколькосоттысячную международную некоммерческую организацию); для вторых -- потому что разработчики прикладных систем (и составившие большинство этих "гостей") одновременно услышали рассказ о реализации объектных возможностей в современных SQL-СУБД сразу от представителей разных, конкурирующих "в обычной жизни" между собой систем, да притом что презентационный элемент в этих выступлениях варьировался от 0 до примерно 1/3 обычной дозы (в зависимости от СУБД). Дополняло необычность то, что слушатели были ознакомлены с позицией по "объектно-реляционному" вопросу независимых экспертов с мировым именем, Криса Дейта и Ким Вона.

Так, открывая семинар, председатель Московской секции Леонид Андреевич Калиниченко, как бы задал критический тон, познакомив слушателей с исследованием, проведенным Ким Воном в отношении меры применимости термина "объектно-реляционная" к современным СУБД. Напомним, что Вон -- не только автор UniSQL, но и активный и авторитетный участник SIGMOD (группы по базам данных) объединения ACM. На проведенное недавно в Стокгольме мероприятие [не Московской секции] SIGMOD Ким Вон пригласил представителей ведущих коммерческих СУБД, с которыми и обсудил вопрос меры применимости. Рамки этой заметки позволяют привести лишь "сухой остаток": все американские представители фирм-разработчиков, включая Oracle, Informix и IBM признали после длительного обсуждения, что СУБД их фирм нельзя считать "объектно-реляционными". Уточнение "американские" приведено не зря: возможно по этому вопросу в фирмах имеются расхождения, так как некоторые российские представители этих фирм (см. ниже о выступлении российского представителя Informix) не согласны со своими американскими коллегами.

Критический тон был поддержан представителем Московского отделения фирмы Oracle Михаилом Елашкиным, в течение 20 минут (большего не позволил регламент) ознакомивший участников с 6-часовым выступлением Криса Дейта, состоявшимся этим летом как раз на тему возможностей объединения объектной и реляционной технологий. Взгляды Дейта на проблему специалистам хорошо известны, они несколько эволюционировали со временем, но в целом и коротко таковы. Реляционная "идея" нереализована, а объектная -- слишком сыра, то есть содержит много непроработанных теоретически моментов. То, что сегодня многими фирмами выдается за "объектно-реляционные" системы, никак не заслуживает такого названия. Оказалось однако, что лучший в мире "учитель" реляционным СУБД (его книга "Введение в СУБД" до сих пор признается наиболее подробным, грамотным и увлекательным изложением реляционных идей) работает над объектно-реляционной моделью, которую вскоре обещает обнародовать. Наивно предполагать, что Дейт не в курсе имеющихся различий между моделью и реализацией, но тем не менее легко представить, какой модель Дейта, буде она появится, вызовет интерес.

Далее эстафету приняли представители фирм-разработчиков с рассказами о том, что именно сделано объектного в последних "объектно-реляционных" версиях. Дмитрий Безруков (фирма ФОРС) имел возможность несколько месяцев поработать с относительно недавно появившейся версией Oracle8, объектные возможности которой считаются стратегически основными новшествами по отношению к предыдущей версии 7. По сравнению с двумя последовавшими далее выступлениями его доклад был, пожалуй, самым конкретным и обстоятельным. Фирма Oracle дополнила свой язык работы с данными (диалект SQL) специальными расширениями, назвав получившееся "объектно-реляционным языком". Пользуясь последним можно создавать свои типы данных, в том числе и на базе ранее определенных, на манер вложенных записей. Языком описания методов служит PL/SQL или C++. Собственно же объекты, обладающие уникальным идентификатором OID, появляются в т.н. "таблицах объектов", в которых каждая строка -- объект. Атрибуты объектов видны обычным табличным образом, и наоборот, доступ к объектам может осуществляться обычными SQL-операторами, примененными к таблицам (объекты без OID могут быть атирбутами простой таблицы). В этой общей схеме много деталей: модельных (коллекции, массивы объектов, "объектные представления" и др.) и технических (хранимые и временные объекты, копирование объектов и др.). Сложность и проработка объектных свойств впечатлила, но и оставила много вопросов.

Предварив свое выступление смелой полемикой с вышеупомянутыми Воном и Дейтом, о реализации объектных свойств в Universal Data Option СУБД Informix рассказал сотрудник московского представительства фирмы Informix Алексей Грачев. Основой реализации по словам московского представителя составляют, во-первых, абстрактные типы данных, и, во-вторых, поддержка наследования. Первое позволяет строить собственные типы на основе базовых и уже заведенных, пользуясь соответствующим расширением SQL. Второе позволяет строить иерархию типов и иерархию данных. Техническое решение, по-видимому перекликающееся с "кассетами" (Cartridges) в Oracle, и имеющее название Data Blade, разрешает объединять в один "пакет" набор типов, объединенных общей прикладной ориентацией. Каждый такой набор может в принципе быть написан кем угодно, но чтобы быть настоящим "лезвием для данных", он должен быть сертифицирован на то фирмой Informix. Выступление Алексея Грачева было настолько "гладким", что почти не породило среди слушателей вопросов. Не сразу пришло осознание, что и Oracle, и Informix в своих объектных расширениях пошли по-большому счету одним путем -- следования предварительному описанию SQL3 (к слову сказать, составленному не без участия этих фирм). Получилось, что множество технических деталей, или в случае Oracle оказались избыточными, или в случае представителя Informix -- невысказанными.

Выступление Константина Лисовского (АО "Курс") об объектных свойствах DB2 Universal Database в значительной мере основывалось на статье Д. Чемберлина (IBM) "Анатомия объектно-реляционных баз данных". Общий принцип IBM -- крайне осторожное внесение новшеств в свои продукты, своего рода компьютерное "не навреди" -- в полной мере относится к внесению объектности в DB2. Объектно-реляционная СУБД в трактовке IBM -- это во-первых, объектная инфрастуктура, и, во-вторых -- реляционная СУБД, поддерживающая объектные данные (здесь используется терминология IBM). К объектной инфраструктуре IBM относит то, что уже входит в DB2, а именно пользовательские функции и типы данных, большие объекты, триггеры и ограничения. Хотя типы могут определяться только на основе базовых, их потенциал оказывается не так уж мал, поскольку функции для типов могут определяться произвольно (в пределах C, C++ или Basic). Реляционные расширения -- это добавки к DB2, позволяющие эффективно работать с объектами различных прикладных областей, типа "текстового расширителя", поддерживающего быстрое извлечение документов на основе содержания. Из сказанного IBM заключает, что свойствах DB2 Universal Database -- это "уже более, чем реляционная СУБД", и обозначает направления, в которых будет продолжаться внесение в систему объектных свойств.

Мне хорошо знакома предыстория прошедшего семинара, поскольку впервые идея о его проведении была высказана в телефонном разговоре с Михаилом Елашкиным в начале прошлого лета. Тогда сложилось ощущение, что появившиеся в последнее время "объектно-реляционные" СУБД вызывают некоторую растерянность у пользователей. Действительно, по сведениям опроса, проведенного Группой пользователей Oracle трех Америк, только 15% из нескольких сотен пользователей планируют закупку Object Option в Oracle8. Общеизвестна дрожь в коленях у финансистов из Informix после попытки этой фирмы сделать Universal Server своим основным поставляемым продуктом. С другой стороны, как мне показалось, растерянность имелась и у фирм-поставщиков, потому что не все их сотрудники понимали, как проконсультировать пользователей по поводу построения "объектно-реляционных" приложений. То есть они зачастую могли хорошо объяснить, как лучше использовать те или иные особенности своих продуктов, но не всегда -- как следует использовать эти продукты для построения прикладной системы. Остановить же продвижение новых продуктов ни наши пользователи, ни представители, естественно не в состоянии.

Именно так возникла идея "круглого стола", участники которого попытались бы осмыслить проблему более широко нежели выяснение тонкостей устройства той или иной системы. Мне кажется, отчасти (см. тематику в начале статьи) это и удалось, или же такому осмыслению было положено начало. Организационно и программно этому поспособствовали, помимо выступавших, ученый секретарь Московской секции ACM SIGMOD Михаил Рувимович Когаловский и заместитель председателя Сергей Дмитриевич Кузнецов. Особо симптоматична активная позиция по подготовке прошедшего семинара со стороны Московского представительства Oracle: его сотрудники проявили не часто встечающуюся у нас широту мышления, предложив такого рода технический семинар с участием конкурирующих фирм. Это может расцениваться как определенного рода зрелость и переход от близорукого проталкивания на рынок своих продуктов, которые есть не более чем инструмент, к более дальновидной практике передачи разработчикам понимания, как, когда и почему этот инструмент применим в их насущной практике создания информационных систем.