СТАТЬЯ
03.09.01

Проблема создания современных бизнес-приложений СУБД

© Андреев А. М.
МГТУ им. Н.Э. Баумана
Березкин Д.В.
НПЦ "ИНТЕЛТЕК ПЛЮС"
Кантонистов Ю. А.
НПЦ "ИНТЕЛТЕК ПЛЮС"

Вначале было...

Начнем с истоков СУБД. Бог создал Адама и Еву, Адам и Ева родили Каина и Авеля, далее см. "Ветхий Завет"... В конце концов далекие потомки Адама - фон Нейман и K° породили ящик, напичканный резисторами, реле, конденсаторами и прочими железными штучками, назвав его Компьютер. Ребенок оказался весьма резвым и смекалистым, быстро встал на ноги и в образе Deep Blue недавно обыграл шахматного короля - Гарри Каспарова. Это историческое событие случилось в наши дни и возможно поэтому оценено явно недостаточно. "Господи, при чем же здесь базы данных!" - воскликнете Вы. Дело в том, что память того же Deep Blue - огромная база данных. Неспособная заменить интуицию, соображение, смекалку, она становится решающим моментом в шахматном (и не только?) поединке, когда партия идет по проторенной тропе. Алгоритмы, заложенные в компьютер талантливым программистом, в сочетании с огромным банком данных заставляют поверить в умение машины думать самостоятельно.

Посмотрите внимательно на свое рабочее место. Что Вы видите? Рукописи статей, шкафы с различной документацией, папки и книги, аудио- и видео кассеты, почта, факсимильные сообщения и многое другое. Почему информационные системы часто терпят неудачу, если требуется проинтегрировать хотя бы небольшую часть из этих объектов в рамках единой автоматизированной системы управления предприятием?

Традиционные системы были разработаны так, чтобы сохранить только табличный текст и числовые данные, т.е. были способны управлять только малой частью общей информации компании. Хорошо справляясь со своей работой по ведению электронного учета и составления счетов такие информационные системы не могут эффективно сохранять и обрабатывать другие типа данных, такие как видео- и аудиообразы, пространственные данные или WEB-страницы. Очевидно, что основным элементом информационной системы предприятия, который отвечает за эти функции является база данных.

Базы данных возникли поскольку появилась потребность сохранять значительные объемы данных вне программ, где они используются, причем сохранять на вторичных накопителях - магнитных дисках, лентах и т.п. Простейший способ - записать данные в дисковый файл и извлечь их впоследствии по мере надобности. Это естественное решение проблемы становится неприемлемым, если мы желаем сортировать данные, обеспечить доступ к ним · сразу нескольких пользователей, наладить поиск, резервное архивирование данных. Такие возможности обеспечиваются специальной программой - сервером базы данных, к которому адресуют запросы клиенты. Компьютерные технологии вышли на такой виток эволюции, что отчетливо просматривается стремление перенести в виртуальный мир объекты мира реального с минимальными потерями. Объектная СУБД именно то средство, которое обеспечивает запись объектов в базу данных "как есть". What You have coded is what You put in database- "Все, что Вы запрограммировали, Вы помещаете в базу данных" - вот девиз такой СУБД.

Cовременный информационный бизнес развивается столь бурно, что заставляет разработчиков вычислительной техники искать новые решения, которые дают возможность управлять огромными объемами не традиционных данных и обеспечивать пользователю доступ к данным в каждом уголке земного шара. Хотя непосредственно требования предъявляются к программному обеспечению, которое должно соответствовать постоянно растущим запросам, это приводит к необходимости совершенствовать аппаратные средства. Появление более мощной микропроцессорной техники открывает новые горизонты перед разработчиками программного обеспечения, которые успевают в кратчайшие сроки свести на нет все усилия "аппаратчиков", породив очередного компьютерного монстра способного проглотить любые мыслимые и даже порой немыслимые вычислительные ресурсы. В ответ рождается новый аппаратный монстр и гонка продолжается. Такие процессы сопровождаются жестокой конкуренцией и борьбой за рынки сбыта, что позволяет ожидать сохранения отмеченных тенденций.

Однако какие бы новые идеи не предлагались, должна быть сохранена приемственность с уже существующими решениями. Поддержание такой приемственности явлется одной из важных задач, которую должны решать современные СУБД и их приложения, что в ряде случаев может быть решающем критерием их выбора.

Одна из важнейших целей современного информационного бизнеса - создание информационной системы, охватывающей виртуальное предприятие с доступом к архиву документов, управление бизнес-процессами, получение адекватной инфомации для поддержки принятия решений, планирование, мониторинг контактов с внешним миром. Абсолютно обязательно условие обеспечить доступ работника к ресурсам виртуального предприятия независимо от того, где он находится - на рабочем месте, дома, в командировке. Такая система, помимо всего прочего, должна обладать простыми, но эффективными средствами администрирования.

На наш взгляд основными задачами сегодняшнего дня, которые должны решаться в области информационного бизнеса являются:

Нам представляется, что только современные объектные СУБД могут в полной мере удовлетворить все эти потребности. Примером подобной СУБД является Jasmine - совместная разработка компаний Computer Associates International, Inc. (CA) и Fujitsu Limited - полнофункиональное интегрированное решение, открывающее бизнесу новые рынки, позволяющее повысить производительность, снизить затраты и вдохнуть новую жизнь в существующие системы. Ниже мы подробно рассмотрим особенности этой СУБД.

Еще немного истории

Тридцать-сорок лет назад, когда электронные вычислительные машины использовались по прямому назначению - именно как математические вычислители, наиболее распространенными были данные, представленные в виде матриц, массивов - одним словом, линейные структуры. Реляционные СУБД идеально вписались в этот мир, предоставив хранилище в виде таблиц. Сегодня мультимедийные приложения задают новый уровень организации данных. Возникает необходимость хранить сложные, переплетенные многими связями документы. Реляционная модель данных, которая, конечно же, играла и играет важную роль в СУБД, не удовлетворяет сегодняшним требованиям, предъявляемым к срокам разработки крупных проектов, к скорости обработки запросов к базам данных. Крупнейшие разработчики СУБД фактически признали это, спешно встраивая в свои продукты поддержку объектной модели программирования. По соображениям совместимости с прежними наработками, лидеры индустрии СУБД предлагают смешанный подход - объектно-реляционный. Спокойной жизни не получается, революции следуют одна за другой: локальные сети, объектно-ориентированное программирование, мультимедиа, распределенные вычисления, Интернет. Каждая уважающая себя фирма обратилась лицом к объектным технологиям и продуктивно сотрудничает с разработчиками объектно-ориентированных СУБД. IBM и Oracle радикально подошли к проблеме и сейчас переработали ядра своих СУБД (соответственно, DB2 и ORACLE) с целью добавить в него объектные свойства. Другой путь выбрал Informix, который приобрел серьезную объектно-реляционную СУБД Illustra и встроил ее в свою СУБД. В результате получился продукт, именующийся универсальным сервером. Еще один гигант рынка СУБД - Computer Associates, поступил иначе. Эта компания несколько лет назад выпустила очень успешную реляционную СУБД Ingres с возможностью добавления сложных данных - предтечу нынешних универсальных серверов. Естественно, эта СУБД имеет интерфейс с объектными языками. Однако, как известно, в 1996 году Computer Associates приобрела объектную СУБД Jasmine - разработку фирмы Fujitsu и 10 декабря 1997 года объявила о начале ее крупномасштабных поставок на рынок. Таким образом, эта компания сделала ставку на чисто объектную базу Jasmine, активно пропагандируя ее достоинства.

По-видимому, рынок корпоративных систем в ближайшее время останется за гибридными объектно-реляционными СУБД. Прогнозы на более длительный срок - занятие неблагодарное. Но наиболее полно современному состоянию вычислительных систем соответствуют, все же, объектные базы данных.

Рисунок 1. Объектные базы и реляционные СУБД

В чем же принципиальное отличие реляционных и объектных баз? Мэри Лумис, один из идеологов СУБД Versant, очень кратко и точно сформулировала актуальность объектного подхода к базам данных: "Модель данных более близка сущностям реального мира. Объекты можно сохранить и использовать непосредственно, не раскладывая их по таблицам. Типы данных определяются разработчиком и не ограничены набором предопределенных типов". Когда сложный объект заносится в реляционную базу, обязательна процедура декомпозиции его данных для их размещения в таблице. При чтении объекта из базы он собирается из отдельных элементов и только затем пригоден для использования. В объектных СУБД все иначе. Данные объекта, а также его методы помещаются в хранилище как единое целое. Кроме того очевидно, что объектные языки нуждаются в адекватном долговременном хранилище, куда данные объектов могут помещаться без разнесения по различным таблицам. Взрывообразный рост Интернета и развитие мультимедиа делают задачи высокоэффективного хранения объектов не просто актуальными, а прямо таки животрепещущими.

В таблице 1 дается сопоставление основных групп современных СУБД по различным критериям сравнения, указываются наиболее типичные продукты для каждой из перечисленных групп и фирмы их изготовители.

Таблица 1.
  Реляционные базы данных Объектно- реляционные базы данных Объектные базы данных Комментарий
Производители и продукты ORACLE 7.x, Informix Dynamic Server, DB/2, OpenIngres, Miscrosoft SQL Server, Sybase SQL Anywhere ORACLE 8.x, Informix Universal Server, Universal Server DB/2 , UniSQL ObjectStore, Gemstone, POET, O2, Versant, Jasmine, ODB-Jupiter  
Модель данных Реляционная модель Реляционная модель Объектная модель  
Легкость понимания и использования Табличные структуры легко воспринимаются, существует множество продуктов для конечнх пользователей То же, что и для реляционных баз данных Существенно упрощается разработка прикладных программ, продуктов для конечных пользователей создано относительно немеого.  
Новые типы данных Система управления базами данных опреирует с ограниченным набором данных (например, числа, строки, даты, бинарные фрагменты - BLOB'ы). Расширение типов универсального сервера (Informix, Oracle) требует сертификации дополнительных модулей (datablades, cartridges), их специального тестирования и вставки в ядро СУБД. IBM даже оставляет за собой исключительное право выпуска расширений типов для СУБД DB/2. Объектная база не требует модификации ядра при добавлении нового типа данных. Новый класс и его экземпляры просто поступают во внешние структуры базы данных. Система управления ими остается без изменений. Очевидно, что постоянные модификации ядра отлаженного оптимизированного любого программного продукта, а тем более СУБД, не самый лучший путь наращивания функциональных возможностей пользовательских приложений.
Данные со сложными связями Выражение множества связей приводит к появлению большого количества таблиц То же, что и для реляционных баз данных Связи выражаются созданием структур любой сложности и обменом сообщений между объектами  
Язык СУБД и запросы Стандатный SQL2, хотя каждый производитель предлагает специфические расширения. Язык манипуляции данными ObjectSQL 100% совместим с SQL2. Все приложения, использующие язык SQL для обмена с базой данных, будут работать с объектно-реляционной СУБД. Язык описания объектов и запросов унифицирован с базовым языком программирования, например, с C++, Smalltalk, Java. Дополнительно предоставляется язык объектных запросов OQL, который является SQL-подобным, но он не полностью совместим с SQL2. В ObjectSQL существенно ограничены возможности объектно- ориентированного программирования. Поскольку данные новых классов все равно сохраняются в таблицах, то отсутствует инкапсуляция данных. Затруднено построение классов - потомков пользовательских.
Оптимизация ядра СУБД Ядра объектно- реляционных СУБД оптимизированы для выполнения операций над таблицами. Ядра объектно- реляционных СУБД оптимизированы для выполнения операций над таблицами. Ядра объектных СУБД изначально оптимизированы под использование объектов. Неясно насколько успешно объектно-реляционные СУБД справляются с запросами, в которые вовлечено большое число пользовательских объектов.

Продолжение статьи

Дополнительная информация

Дополнительную информацию Вы можете получить в компании Interface Ltd.

Отправить ссылку на страницу по e-mail
Обсудить на форуме Computer Associates


Interface Ltd.
Тel/Fax: +7(095) 105-0049 (многоканальный)
Отправить E-Mail
http://www.interface.ru
Ваши замечания и предложения отправляйте автору
По техническим вопросам обращайтесь к вебмастеру
Документ опубликован: 03.09.01