К оглавлению

С научно-практической конференции "Компьютеризированные технологии ГИС" (г. Тверь, 27 - 30 мая 1996 г.)

ОБЪЕКТНО-ОРИЕНТИРОВАННАЯ БАЗА ДАННЫХ ИНТЕГРИРОВАННОЙ СИСТЕМЫ МОНИТОРИНГА МЕСТОРОЖДЕНИЙ

И.В. Рудов, А.В. Городнов, Г.Р. Ибатуллин, В.Н. Черноглазов (ГАНГ им. И.М. Губкина)

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

Лучшие образцы зарубежных интегрированных систем, предназначенных для проектирования и управления процессами разведки, освоения и разработки месторождений нефти и газа, опираются на мощные коммерческие реляционные системы управления базами данных (СУБД) (такие, как Oracle, Sybase, DB2, Ingres и др.). Однако специфика информации геологоразведочной и нефтегазодобывающей отраслей с трудом укладывается в жесткие рамки реляционной модели данных, и разработчикам специализированных баз данных приходится идти на различные ухищрения, приспосабливая коммерческие СУБД для решения прикладных задач.

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

Реальной альтернативой реляционным базам данных становятся бурноразвивающиеся объектно-ориентированные базы, которые позволяют описывать и управлять типами данных любой степени сложности. Такая база данных фактически представляет собой базу объектов, подчиняющихся единым правилам и механизмам управления СУБД. Эти свойства объектно-ориентированной базы данных открывают новые, ранее недоступные возможности при проектировании базы данных интегрированной системы и ее развитии в процессе эксплуатации.

В ГАНГ им. И.М. Губкина создана оригинальная объектно-ориентированная иерархическая база данных, являющаяся основой разрабатываемой на кафедре ГИС интегрированной системы мониторинга месторождения "СИГМА". Благодаря оригинальному подходу при реализации нижнего, физического уровня базы данных авторам удалось применить иерархическую модель данных, устранив главный недостаток этой модели - ограничения при наращивании и изменении структур базы данных в процессе ее эксплуатации.

Это позволило спроектировать простую и легко доступную логическую структуру организации разнородных геологических, геофизических и промысловых данных в виде набора деревьев. На рисунке показан пример одного из них. Каждое дерево состоит из узлов, соединенных между собой. Внутреннее устройство узлов напоминает типичную реляционную таблицу. Каждая таблица имеет поля (столбцы) и записи (строки). Каждое поле может содержать данные только заранее определенного типа. Типами данных являются строка, число, дата, как в обычных реляционных базах данных, а также поддерживаются сложные, нестандартные типы - геофизическая кривая, электронная таблица и др.

Во-вторых, применение иерархической модели данных обеспечило более высокие скоростные характеристики по сравнению с реляционными базами данных. Это преимущество становится особенно заметным при объемах хранимой информации более 100 Мб и количестве скважин более 1000.

Что же еще дают свойства объектной ориентированности базы данных СИГМА?

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

В объектно-ориентированной базе данных при описании векторных массивов данные объединяются вместе с их методами (атрибутами, процедурами и межобъектными связями) в объект одного класса. Обращаясь к такому объекту за необходимой информацией, обрабатывающие программы совершенно "не беспокоятся" о том, в каком виде хранится эта информация, поскольку эту роль берут на себя методы объекта. Наглядным примером этого принципа служит реализованная в СУБД СИГМА процедура автоматической упаковки и распаковки данных внутри самого объекта. Например, каждый раз при обращении к объекту "геофизическая кривая" автоматически включается процедура разархивации, которая преобразует внутренний компактный формат хранения данных в стандартный вид, понятный обрабатывающим программам. Поэтому программистам, создающим обрабатывающие модули интегрированной системы, не обязательно знать о внутреннем формате базы данных. С другой стороны, применение автоматической упаковки данных экономит место на жестком диске в 2 - 2,5 раза по сравнению с обычным бинарным представлением данных. Режим упаковки данных устанавливается с помощью программы "Администратор БД" и может применяться к любому виду информации.

Другим ярким достоинством объектного хранения данных является удобная работа с большими потоками информации в сети. Поскольку объект может одновременно содержать внутри себя данные и процедуры их обработки, в том числе и выполняемый программный код, который является всего лишь одной из разновидностей данных, то ничто не мешает поручить объекту производить выполнение процедур упаковки и разупаковки данных в разных местах. Если ядро базы данных расположено на сервере, то передача информации по сети осуществляется в упакованном виде, существенно снижая сетевой трафик (загрузку сети), и автоматически распаковывается только на компьютере-клиенте. Аналогично, но уже в обратном порядке, производится запись информации в базу данных, расположенную на сервере. Строгое разделение функций серверной и клиентской частей, реализованное в СУБД СИГМА, позволяет легко переносить ядро базы данных на файл-серверы других аппаратных платформ, включая RISC-6000 и SUN.

При работе в неоднородной сети часть операций с данными, требующая больших объемов вычислений, может выполняться на мощном сервере (например, процедуры регуляризации сетки при картопостроении или первичная обработка данных волнового акустического каротажа). Оставшаяся часть работы выполняется в этом случае на менее мощном компьютере-клиенте. Таким образом, экономятся значительные средства на постоянную модернизацию парка вычислительной техники и одновременно более эффективно используются вычислительные ресурсы мощного сервера. И это также стало возможным благодаря применению объектно-ориентированного подхода при разработке СУБД СИГМА.

Рассмотрим теперь фундаментальные свойства объектов - инкапсуляцию, полиморфизм и наследование, и что они дают обыкновенному пользователю и разработчику интегрированной системы.

Термин инкапсуляция обозначает закрытость объекта от внешнего программного мира и его практически полную автономность. Благодаря этому замечательному свойству объектов в СУБД СИГМА реализован очень полезный тип данных - электронная таблица, которая встраивается как объект в одну из ячеек обыкновенной таблицы узла. Такая электронная таблица может иметь огромные размеры, включая до 250 полей и до одного миллиона записей, и содержать внутри себя десятки мегабайт информации. Она имеет собственные механизмы управления и атрибуты. И в то же время для объектно-ориентированной СУБД она ничем не отличается от любого соседнего поля, где хранится обыкновенное число или дата. Это значительно упрощает проектирование и управление базой данных, поскольку уже не требуется большого количества маленьких файлов: все данные лежат в одном большом объекте. Более того, благодаря полной автономности электронной таблицы, как объекта, администратор базы данных имеет возможность самостоятельно вводить в нее новые поля. Причем безопасность сохранения накопленной ранее информации полностью гарантируется.

Второе свойство объектно-ориентированной базы данных - полиморфизм - не менее удобно и полезно. С его помощью создаются большие виртуальные массивы и легко расширяются коды программ. Благодаря этому свойству база данных СИГМА может распределяться на двух десятках серверах одновременно. Более того, часть данных (скажем, испытания скважин) может храниться в любой другой базе данных (например, Paradox или Finder), имеющей динамическую связь с СУБД СИГМА. При этом пользователь может даже не подозревать о наличии столь сложных связей. Он видит привычный интерфейс СУБД СИГМА на своем компьютере, куда автоматически стекается из разных мест необходимая информация. А всю черновую работу по организации информационных потоков выполняет СУБД (и, разумеется, администратор базы данных).

То же самое можно сказать и о программистах, создающих обрабатывающие модули системы. Для поиска данных их программы могут обращаться с помощью набора стандартных функций непосредственно к СУБД СИГМА, хотя физически искомая информация может находиться в Paradox'e или на любом внешнем носителе. Это очень удобно и просто. И, наконец, какие преимущества несет третье свойство объектов - наследование?

Любой авторский коллектив, разрабатывающий солидные компьютеризированные системы, обязательно сталкивался с вечными проблемами роста. В процессе развития программных комплексов у авторов непременно появляются новые идеи, требующие немедленного воплощения. Но при этом неизбежно приходится ломать все старое, в том числе и уже не раз отлаженные структуры данных. Принцип наследования, реализованный в объектно-ориентированной базе данных СИГМА, позволяет свести к минимуму затраты на изменение структуры данных. Не надо ничего ломать и переделывать. Достаточно описать и внедрить наследника того объекта, который очень хочется изменить. И Вы получаете новые возможности для развития своего программного обеспечения, причем все написанные ранее программы продолжают успешно работать без остановки производственного цикла.

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

А теперь немного о технических подробностях СУБД СИГМА.

СУБД СИГМА поддерживает локальные и глобальные базы данных (БД). Каждая БД имеет имя доступа. Локальные БД создаются приложениями (обрабатывающими программами и модулями системы) для создания рабочего набора. Количество локальных БД не ограничено. Глобальные БД являются доступными для всех приложений/пользователей и размещаются на сетевых дисках. Максимальное количество глобальных БД - 16.

Деревья (подбазы)

Каждая БД состоит из деревьев (до 8). Дерево имеет имя доступа и неизменяемый на время сеанса уникальный номер. Каждое дерево состоит из узлов и дуг. Дуги соединяют между собой узлы и являются двунаправленными, что позволяет осуществлять навигацию между узлами в обоих направлениях. Организация ссылок позволяет независимо от общего размера БД мгновенно получать доступ к родительским/дочерним записям.

Узлы

Максимальное количество узлов в глобальной БД - 100. Каждый узел имеет имя доступа и неизменяемый на время сеанса уникальный номер и может размещаться на отдельном носителе (диске) и храниться в двух режимах: "высокая скорость" и "экономия памяти". Узлы БД снабжены мощными механизмами высокоуровневого кеширования и оптимизации доступа, что позволило применить объектно-ориентированную технологию для типов полей без потери производительности БД.

Поля

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

СУБД СИГМА может иметь сколь угодно сложную структуру и состоит из набора компонентов фиксированной/переменной длины размером каждого компонента от 0 байт до 2 ГБ. Для компонентов переменной длины введена регулируемая кластеризация пространства (от 16 байт до 64 Кб). Структуру поля определяет тип-владелец поля по запросу программы "Администратор БД". Тип-владелец может заказать схему оповещения о событиях БД, что позволяет создавать чрезвычайно гибкие информационные потоки. С целью эффективного оперирования данными, тип-владелец может читать/ писать информацию по смещению, изменять размер компонентов и др. При этом размер запрашиваемого блока информации практически не ограничен (до 2 ГБ). Весь доступ со стороны приложений к полям осуществляется через методы типа-владельца, что позволяет свободно менять физическую структуру поля без последствий для приложений-клиентов.

Пример списка компонентов для типа "геофизическая кривая":

Заголовок кривой: Фиксированный компонент 20 байт;

Данные (точки): Переменный компонент с кластеризацией 256 байт;

Данные по визуализации кривой: Фиксированный компонент 30 байт.

Для компонентов предусмотрен прозрачный для приложений механизм упаковки данных. Максимальное количество полей в каждом узле - 100. Максимальное количество компонентов, доступных типу-владельцу, - 64.

Типы

Весь доступ к информации из БД может осуществляться только (!) через методы типа-владельца, что позволяет приложениям полностью абстрагироваться от физической структуры конкретного поля записи. Для типов поддерживается механизм множественного наследования с автоматической виртуализацией методов типа для приложений-клиентов, что позволяет загружать, в уже функционирующую БД, наследников установленных типов, которые несут новые свойства без вреда для приложений.

В настоящий момент в СУБД СИГМА реализованы следующие типы данных: целое, длинное целое, вещественное, строка, дата, время, 2-х и 3-х уровневый флажок, перечисляемый тип, комментарии, электронная таблица, ступенчатая и дискретная геофизическая кривая, 2/3/4 мерная палетка с мощным инструментарием описания. Подготовлено описание типов "сейсмический разрез" и "волновой акустический каротаж".

Архивизация информации

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

Целостность и конфиденциальность информации

Обеспечению целостности (надежности) базы данных уделено особое внимание. Основные приемы, которые были применены для решения этой проблемы: контрольные суммы всех важных блоков информаций (с целью зафиксировать повреждение на ранней стадии), избыточность структурной информации (дублирование), режим отката аварийно завершившейся транзакции (опционально), возможность абсолютно безболезненно восстанавливать удаленные записи (до момента оптимизации БД), система паролей для пользователей с управлением правами доступа до уровня узла (опционально).

Сеть

СУБД СИГМА может функционировать практически во всех сетях, обеспечивая параллельный доступ приложений. При работе в сети ядро БД может использовать вычислительные мощности сервера (IBM RISC, Sun) для решения задач, требующих массовых вычислений.

Информационные потоки

Обмен информацией между приложениями и СУБД осуществляется на основе транзакции с автоматическим разделением доступа. Вся структурная информация и ресурсы-константы могут извлекаться без объявления транзакции. Импорт/экспорт данных выполняется с помощью ассоциируемых приложений. СУБД СИГМА позволяет загружать/выгружать данные в ASCII, LAS, Нейман, ASP форматах. Обеспечивается динамический обмен информацией с комплексом моделирования разработки WorkBench. Готовится приложение для обмена информацией с реляционными базами данных через SQL-запросы.

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

Описанная выше объектно-ориентированная СУБД является частью разрабатываемого на кафедре ГИС ГАНГ им. И.М. Губкина комплекса программ мониторинга месторождений нефти и газа, функционирующего на персональных компьютерах в среде Windows 3.1/ Windows 95/Windows NT.

В комплекс "СИГМА 2.0" входят следующие модули:

  1. Объектно-ориентированная иерархическая база данных, поддерживающая нестандартные типы данных (геофизическая кривая, карта, сейсмический разрез и др.);
  2. Модуль картопостроения, позволяющий создавать карты различных параметров и схемы условных обозначений по произвольным выборкам из базы данных. Одновременно этот модуль выполняет функции монитора, обеспечивая быстрый и удобный доступ к информации, хранящейся в базе данных;
  3. Модуль детальной корреляции с возможностью выравнивания поверхностей и восстановлением мощности уплотненных осадков;
  4. Модуль анализа эксплуатационных характеристик скважин;
  5. Модуль обработки данных ГИС-контроль, реализующий стандартные процедуры и оригинальные технологии изучения состава притока и свойств пласта в работающих скважинах;
  6. Модуль оперативной оценки запасов;
  7. Модуль построения цифровой модели залежи;
  8. Модуль создания презентационной графики и геофизических планшетов.

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

ЛИТЕРАТУРА

  1. Дейт К. Руководство по реляционной СУБД DB2. Москва, "Финансы и статистика", 1988.
  2. Райли Д. Абстракция и структуры данных. Вводный курс. Москва, Мир, 1993.
  3. Сенин Г.В. Системы манипулирования данными на персональных ЭВМ. Прикладная информатика, вып. 14, 1988.
  4. Ульман Дж. Основы систем баз данных. Москва, "Финансы и статистика", 1983.
  5. Цикритзис Д., Лэховски Ф. Модели данных. Москва, 1985

Рисунок

Логическая структура хранения информации по месторождению. Окно Редактора базы данных СИГМА