Концепция гибкого объектно-иерархического доступа к геологическим данным в реляционных СУБД

 

Гришкевич В.Ф. (НАЦ РН ХМАО)

Генеральное направление развития реляционных СУБД — введение в них элементов объектного описания данных. Предлагаемая концепция базируется на существующих возможностях иерархического и объектного представления структуры данных и динамического построения SQL-предложений в системах управления реляционными базами данных, например, в Oracle-8, с одной стороны, и на графических возможностях представления иерархических структур в языках программирования высокого уровня, таких как С++ или Visual basic 6, — с другой.

Предположим, что общая структура реляционной базы данных описывается по схеме объект/отношение. При этом в качестве информационных моделей объектов могут выступать базовые таблицы реляционной БД, а также конструированные над ними простые или объектные представления (простые или объектные VIEW). То есть объектным классом является не таблица БД, а сущность (объект определенного типа — суть хранимой информации.) Далее для БД определяется разумное множество логически допустимых бинарных отношений — логических связей между объектами: (объект 1, логика связи, объект 2). После того, как множество таких связей определено на БД, допустима любая динамическая классификация, составленная из отношений (связей) этого множества по принципу домино, где на ориентированных костяшках написаны имена связываемых объектов (таблиц или VIEW) : (a-:-b)(b-:-c)(c-:-d)(d-:-e) и т.д. При этом имена на одной костяшке всегда не совпадают, отношение сущности самое с собой недопустимо. Такую цепочку взаимосогласованных межобъектных отношений мы назовем формальной классификацией.

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

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

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

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

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

Важнейшая функция доступа к данным — выбор (пометка) объекта интереса пользователя, который при объектном доступе технически осуществляется пометкой вершин графа доступа (переключатель YES/NO/NULL поля SELECTED). При этом если вершина является конечной в дереве навигации, то объект этой вершины включается в список отобранных объектов. Если же выбранная вершина (переключатель SELECTED=YES) является промежуточной, то в список отобранных объектов включаются все вершины, подчиненные выбранной вершине, за исключением вершин с переключателем SELECTED=NO. При этом вершины с переключателем SELECTED=NULL автоматически включаются в список, если они подчинены отобранной вершине, в противном случае они игнорируются. Таким образом, пользователю предоставляется возможность формирования списков конечных вершин (объектов) путем гибкого непосредственного выбора множества соподчиненных объектов; например, все работники отдела связи плюс группа монтажников из отдела развития за вычетом двух человек. SELECT-предложение, описывающее запрос на формирование такого списка, составляется динамически на основе анализа состояния вершин дерева навигации в соответствии с логикой отношений формальной классификации.

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

Чтобы сохранить иерархический, точнее, сетевой доступ, пойдем по пути последовательного усложнения.

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

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

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

Нормализация диаграммы объект-отношение предполагает такое выделение объектных классов (объектов), когда все отношения, выходящие за рамки бинарных, включаются во внутреннюю структуру объекта. Например, когда тройное отношение само объявляется объектом, имеющим три простые бинарные отношения с тройкой объектов, которые связывало исходное тройное отношение.

Предлагаемая технология нуждается в глубокой теоретической проработке и качественной программной реализации на уровне базового программного обеспечения систем управления реляционными базами данных.

Основные принципы предлагаемого подхода опробованы в совместных разработках с И.В Сидоровой и Н.Ю. Галкиной.

В качестве иллюстрации мы приводим пример построения простейшей линейной классификации и ее дерева навигации над разделом ИБД ГУП ХМАО НАЦ РН по фонду поисково-разведочных скважин.

В специальной таблице БД CLASS_ENTITIES описаны объекты (сущности). Для каждого из них указано имя реальной или виртуальной таблицы ИБД; под заголовками Кол_1 и Кол_2 приводятся имена колонок таблицы или VIEW, из которых берутся уникальный идентификатор объекта для внешних ссылок (Кол_1) и его имя (Кол_2).

В специальной таблице БД CLASS_ENTITIES описаны объекты (сущности).
В специальной таблице БД CLASS_ENTITIES описаны объекты (сущности).

В следующей таблице CLASS_ETN_REL описываются отношения между объектами БД. Кроме кодов связываемых объектов (Сущн_1 и Сущн_2), описание отношения содержит ссылки на таблицы ИБД и ключевые колонки этих таблиц (Ключ_1, Ключ_2), по которым осуществляется логическое связывание соподчиненных объектов.

В следующей таблице CLASS_ETN_REL описываются отношения между объектами БД.
В следующей таблице CLASS_ETN_REL описываются отношения между объектами БД.

Формальная классификация — это упорядоченное перечисление участвующих в нем межобъектных отношений. В данной классификации на первом уровне располагаются нефтегазоносные области, на втором – нефтегазоносные районы, на третьем – группы площадей, на четвертом – площади и на пятом – скважины. Гипотетическое полное дерево данных содержит все вышепоименованные объекты от нефтегазоносной области до скважины в их естественном иерархическом соподчинении.

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

На прилагаемом рисунке показано дерево навигации пользователя, последовательно осуществившего выбор объектов ВАСЮГАНСКАЯ (НГО), ВАСЮГАНСКИЙ (НГР), ФЕСТИВАЛЬНАЯ (группа площадей), ЮЖНО- ФЕСТИВАЛЬНАЯ (площадь). Ниже в таблице показано описание соответствующего графа доступа.

На прилагаемом рисунке показано дерево навигации пользователя, последовательно осуществившего выбор объектов ВАСЮГАНСКАЯ (НГО), ВАСЮГАНСКИЙ (НГР), ФЕСТИВАЛЬНАЯ (группа площадей), ЮЖНО- ФЕСТИВАЛЬНАЯ (площадь).
На прилагаемом рисунке показано дерево навигации пользователя, последовательно осуществившего выбор объектов ВАСЮГАНСКАЯ (НГО), ВАСЮГАНСКИЙ (НГР), ФЕСТИВАЛЬНАЯ (группа площадей), ЮЖНО- ФЕСТИВАЛЬНАЯ (площадь).

Необходимо обратить внимание, что для площадей и скважин код объекта и его имя не совпадают, так как кодами этих объектов являются их уникальные номера внутри ИБД.

Необходимо обратить внимание, что для площадей и скважин код объекта и его имя не совпадают, так как кодами этих объектов являются их уникальные номера внутри ИБД.
Необходимо обратить внимание, что для площадей и скважин код объекта и его имя не совпадают, так как кодами этих объектов являются их уникальные номера внутри ИБД.

Литература

  1. Дейт К.Дж. Введение в системы баз данных. — Киев-Москва: Диалектика. –1998.- 784 с.