Реляционные, объектно-ориентированные и объектно-реляционные СУБД
Системы управления базами данных (СУБД) давно уже заняли прочное положение в самых разных сферах человеческой деятельности. Современные реляционные СУБД благодаря строгой, хорошо разработанной теоретической основе и множеству дополнительных инструментов позволяют десяткам тысяч пользователей работать с терабайтами данных. Большинство из них обеспечивают высокую скорость и многопроцессорную обработку транзакций, тиражирование информации и ее защиту от несанкционированного доступа, контролируют целостность данных, работают в гетерогенных средах.
Но реляционные СУБД, весьма эффективные для простых типов данных - символьных строк и всевозможной числовой информации, значительно хуже справляются с более сложными типами - графикой, звуком, движущимися изображениями и даже просто достаточно длинными текстами. Такие данные должны храниться в виде так называемых BLOB (Binary Large Objects - большие двоичные объекты), содержимое которых никак не интерпретируется сервером. Тем самым сервер не может эффективно сравнивать и упорядочивать BLOB-объекты, не способен выполнять запросы, основанные на их содержимом. Вся работа по трактовке содержимого объектов, их преобразованию и сравнению ложится на клиентские приложения и программируется каждый раз заново. А поскольку BLOB-объекты интерпретируются не сервером, а клиентом, их необходимо всякий раз передавать на клиентскую машину, перегружая сеть гигантскими объемами данных.
Специально для работы со сложными объектами данных были созданы объектно-ориентированные СУБД, где объекты хранятся в той же форме, в которой обрабатываются. Для работы со сложными данными используются объектные языки программирования высокого уровня; обращение к объектам осуществляется по идентификаторам или по ссылкам. Такой подход обеспечивает достаточно эффективную обработку объектов, но делает весьма трудным построение сложных запросов на непроцедурном языке, подобном SQL для реляционных данных. Запросы, основанные на содержимом или внутренней структуре объектов, должны писаться на языке программирования. Кроме того, в объектно-ориентированных СУБД сложнее реализовывать транзакции. Возможно, такие системы в принципе не способны обрабатывать параллельные запросы от более чем 50-100 пользователей.
Первая коммерческая реализация объектно-реляционного подхода была осуществлена в системе Illustra (1993 г.). Эта система представляет собой попытку соединить достоинства объектных и реляционных СУБД, т. е. полноценный язык запросов и эффективную обработку сложных объектов. Illustra достигает этого с помощью расширения стандартного SQL-92. Расширенный SQL позволяет создавать, хранить и извлекать объекты сложных типов, а также обеспечивает поддержку объектных возможностей. В Illustra же впервые появились и DataBlade - модули расширения к серверу СУБД, предназначенные для работы с новыми типами данных (см. также В. Индриков Объектно-ориентированные технологии Informix // Мир ПК, 1997, #5, с.76. - Прим. ред.).
Позже фирма Illustra была приобретена компанией Informix, которая еще в 1992 г. переписала код своей мощной реляционной СУБД в расчете на поддержку будущих объектных расширений. В конце 1996 г. на рынок вышла объектно-реляционная СУБД INFORMIX-Universal Server, сочетающая передовые идеи и технологии Illustra с динамической масштабируемой архитектурой Informix.
Возможности технологии DataBlade
Для управления сложными данными необходимо, чтобы сервер их "понимал", т. е. умел трактовать содержимое и формат таких данных, сравнивать объекты соответствующего типа, строить для них оптимальный план запроса и использовать оптимальный метод доступа.
Все это обеспечивают модули DataBlade, которые позволяют и "собирать" объекты из простых "кирпичиков" - элементарных типов данных (поддержка составных типов, множеств, массивов, ссылок), и наоборот, структурировать большой двоичный объект. Благодаря расширенному SQL появляется возможность определить для нового типа данных свои методы доступа и индексирования; эта возможность очень важна, поскольку для сложных объектов стандартное индексирование в подавляющем большинстве случаев неэффективно.
Принципиальной особенностью модулей DataBlade является то, что они встраиваются непосредственно в СУБД. Поэтому сервер баз данных управляет дополнительными типами данных столь же естественно и эффективно, сколь и стандартными.
Чтобы начать работать в INFORMIX-Universal Server с каким-либо нестандартным типом информации, достаточно подключить к СУБД соответствующий модуль DataBlade. Нужен финансовый инструментарий, который анализирует серии данных, получаемые через определенные промежутки времени? Используйте Time Series DataBlade. Требуется интегрировать информацию о пространственной модели в систему автоматического проектирования? К вашим услугам Spatial DataBlade. Несколько модулей DataBlade позволят хранить в одной базе данных и под управлением единого сервера информацию всех нужных типов.
Для разработки модулей DataBlade компания Informix предоставляет специальный пакет DataBlade Developer Kit. Созданные с его помощью модули будут органично вливаться в работу INFORMIX-Universal Server. При этом фирмам, имеющим собственную технологию работы с определенными типами данных, вовсе не обязательно выбрасывать старые программы - они вполне смогут пригодиться при создании DataBlade, поскольку функции для работы с данными пишутся на Си/Си++ (в следующей версии, которая выйдет в начале 1998 г., предусмотрена также поддержка Java).
Кроме того, на рынке имеется около 30 готовых модулей DataBlade, охватывающих широкий спектр типов данных. Одни из них разработаны самой компанией Informix, другие - ее партнерами. Расскажем о некоторых таких модулях.
Text DataBlade (Excalibur)
Обеспечивает хранение текстовых документов и их поиск по содержимому, позволяя органично включить управление документами в информационную систему. Полнотекстовый поиск осуществляется по индексу, который не требует большой поддержки и довольно компактен, особенно по сравнению с другими аналогичными решениями.
Достоинством Text DataBlade является простая и интуитивно понятная схема построения запросов к документам.
INFORMIX-Video Foundation DataBlade (Informix)
Позволяет управлять содержимым видеофайлов и сопутствующей информацией (метаданными). Сама видеоинформация может храниться на диске, видеоленте, видеосервере или другом внешнем устройстве.
Модуль включает виртуальный интерфейс хранения (Virtual Storage Interface - VSI), позволяющий связать INFORMIX-Universal Server с выбранным видеосервером, и, помимо хранения и проигрывания данных с видеосервера, контролирует их целостность и обеспечивает защиту от несанкционированного доступа. Можно организовать неограниченное число "представлений" одного фильма для разных пользователей. Права доступа задаются на уровне видеосегментов, а при необходимости - и на уровне отдельных кадров.
Visual Information Retrieval DataBlade Module and Viewer (Virage)
Система распознавания изображений, хранящихся в базе данных, позволяет извлекать изображения и видеоданные при помощи механизма контекстного поиска, который анализирует визуальную информацию на основе таких атрибутов, как цвет, форма, текстура, композиция. Изображения могут храниться в различных графических форматах.
Модуль снабжен специальным графическим интерфейсом Visual Information Viewer, обеспечивающим работу со всеми его возможностями.
Web DataBlade (Informix)
Модуль для подключения INFORMIX-Universal Server к World Wide Web, обеспечивающий взаимодействие СУБД с приложениями, написанными на HTML, и с HTTP-сервером. Поддерживает полный набор возможностей сервера баз данных (включая версии записей, правила и работу с мультимедийными данными), а также специальные теги HTML для формирования логики приложения, работы с переменными и обработки ошибок. К модулю прилагаются заготовки приложений, демонстрирующие организацию доступа к базе данных из глобальной сети.
Высокопроизводительный программный модуль Webdriver позволяет обращаться к базам данных с помощью операторов SQL, встроенных в заготовку HTML-страницы.
Time Series Analysis DataBlade (Informix)
Служит для работы с так называемыми временны'ми рядами, т. е. последовательностями данных любых (в том числе сложных) типов, получаемых через определенные промежутки времени. Эти ряды широко используются в финансовой и научной сфере.
Обеспечивает хранение и моделирование временны'х рядов, а также высокопроизводительный доступ к ним, значительно более эффективный, чем при организации таких данных в виде таблиц; предоставляет обширный набор средств для анализа соответствующей информации и манипулирования ею.
Поддержка русского языка и DataBlade "Русский Текст"
О проблеме поддержки русского языка следует сказать особо. Поддержка национальных языков в традиционном понимании в продуктах Informix есть уже давно. Благодаря механизму GLS (Global Language Support - глобальная языковая поддержка), реализованному во всех продуктах компании, мы можем хранить в символьных полях слова, содержащие русские буквы (поддерживаются разные кириллические кодировки), давать объектам баз данных русские названия, сортировать данные в порядке русского алфавита и т. д. Однако полнотекстовый поиск в базе данных требует большего: хорошая поисковая система для русскоязычных текстов должна находить каждое слово (лексическую единицу) во всех формах. В противном случае результат поиска не будет адекватным (либо потребуется вводить очень длинный запрос с указанием всех форм), что, кстати, и происходит в существующих модулях DataBlade для работы с текстами, разработанных без учета особенностей русского языка.
В INFORMIX-Universal Server данную проблему естественно решить путем построения нового модуля DataBlade для работы с типом данных "русский текст", который будет предусматривать метод индексирования, учитывающий русскую морфологию. Именно это и сделала фирма "Редлаб" - давний российский партнер Informix (с 1993 г. авторизованный учебный центр Informix, позже - разработчик приложений и системный интегратор). Став в 1996 г. ключевым партнером Informix по технологии DataBlade и Universal Server, она в рамках всемирной программы Informix DataBlade Developer Program разработала модуль "Русский Текст". Это первый и пока единственный модуль DataBlade, созданный в России.
"Русский Текст" позволяет найти в документах базы данных (в том числе многоязычных) все словоформы заданного русского слова. В запросах допускаются логические операторы (AND, OR, NOT) и специальный оператор WITHIN, определяющий максимальное расстояние между словами в документе. Можно искать и точные фразы. Сложность запросов не ограничена. Реализован также нечеткий поиск, который находит разные варианты написания слова (с ошибками или пропущенными буквами).
Документы могут храниться в базе в любой кодировке, поддерживаемой GLS; допустимо хранение в одном поле документов в различных кодировках - индексирование и поиск будут производиться корректно.
Благодаря эффективной организации индекса запросы обрабатываются с очень высокой скоростью (3-5 Мбайт текста в минуту); при этом наличие в запросе сложных логических конструкций не снижает производительности. Словарь содержит более 140 000 основ и допускает расширение (возможна настройка на лексику заказчика). Иностранные слова и слова, не найденные в словаре, также включаются в индекс. Это означает, что по ним тоже можно проводить эффективный поиск.
Теперь INFORMIX-Universal Server владеет русским не хуже, чем английским. Столь всеобъемлющей поддержкой русского языка не может похвастаться никакая другая промышленная СУБД.
Перспективы INFORMIX-Universal Server
Итак, СУБД должны научиться работать с новыми типами данных. Мультимедийным системам явно недостаточно чисел и символьных строк. Традиционные методы хранения и извлечения информации перестают справляться с возросшим объемом и сложностью информации даже там, где базы данных применяются уже давно (например, в финансовой сфере). Стремительно развивающаяся WWW вызвала к жизни совершенно новые подходы к обработке данных и предъявляет особые требования к производительности и надежности работающих в ней систем.
Везде, где необходима работа со сложными типами данных, СУБД INFORMIX-Universal Server будет наилучшим решением. В настоящее время основные области ее применения - это, во-первых, Web-узлы (как для Internet, так и для intranet-сетей), а во-вторых, информационные системы, которые работают с данными нетрадиционных и новых типов, "не вписывающимися" в реляционную схему: финансовые, геоинформационные, научные, системы для САПР и дизайна, базы мультимедийной информации.
Нынешний этап в развитии СУБД является переломным, он определит будущее этой отрасли на много лет вперед. И можно с уверенностью сказать, что современные решения INFORMIX-Universal Server позволят этой технологии занять достойное место в компьютерной индустрии.
Нина Гвоздева - эксперт по базам данных в фирме "Редлаб". E-mail: nina@redsite.redlab.ru