ИРКУТСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ПУТЕЙ СООБЩЕНИЯ
Бычков И.В., Гаченко А.С., Хмельнов А.Е., Фереферов Е.С. УДК 004.4.22
СИСТЕМА СОЗДАНИЯ АВТОМАТИЗИРОВАННЫХ РАБОЧИХ МЕСТ С ВОЗМОЖНОСТЬЮ ВЗАИМОДЕЙСТВИЯ С ПРОСТРАНСТВЕННЫМИ ДАННЫМИ НА ОСНОВЕ МЕТАОПИСАНИЙ СТРУКТУР БАЗ ДАННЫХ_
Введение. Для эффективной работы современных организаций и предприятий требуется применение информационных систем. Как правило, чем крупнее предприятие, тем больше требуется информационных систем (ИС), обеспечивающих различные виды его деятельности. ИС внедряются по мере развития (роста) организаций и поэтому информационно-аналитическая среда таких предприятий часто представляет собой набор автоматизированных рабочих мест (АРМ), реализованных в разных системах программирования и ориентированных под разные СУБД. Базы данных (БД) этих АРМов могут содержать информацию об объектах, имеющих пространственную привязку (почтовые адреса, описание расположения объектов и т.д.), которая в явном виде не хранится в БД. Часто возникает потребность в получении комплексной информации, что бывает проблематично из-за разнородности информационных систем. Для интеграции и комплексного анализа пространственной информации предназначен класс программ — геоинформационные системы (ГИС). Применение ГИС повышает уровень автоматизации и качества принимаемых решений.
Однако, интеграция существующих АРМов и ГИС — задача трудоёмкая, требующая для своего решения обязательного наличия исходных текстов АРМов, освоения разработчиками внедренных АРМов геоинформационных технологий или, наоборот, изучения специалистами в области ГИС исходных текстов уже существующих систем.
Одним из подходов к решению рассматриваемой задачи является разработка приложений на базе популярных ГИС, таких как ArcView [1], MapInfo [2], MicroStation [3]. В этих системах предусмотрена работа с таблицами БД наряду с семантическими таблицами, связанными со слоями карт, существуют возможности построения запросов, связывающих между собой несколько таблиц и картографических слоёв. Однако, воспользоваться этими возможностями может лишь опытный пользователь рассматриваемых ГИС, и так как уровень автоматизации этих функций практически отсутствует, то для их реализации необходимо выполнить достаточно большое количество операций даже для привязки к карте небольшого набора таблиц БД. Таким образом, имеющиеся в рассматриваемых ГИС возможности по привязке данных из БД к карте, не позволяют решить задачу интеграции данных в полном объеме, без разработки специализированных приложений, работающих под управлением соответствующих ГИС. С другой стороны, данные программные средства для построения ГИС вынуждают разработчиков использовать внутренние языки программирования (Avenue для ArcView, MapBasic для MapInfo, MDL для MicroStation). Помимо естественной ограниченности выразительных средств подобных языков этот подход неизбежно порождает проблему кадров и, как следствие, проблему сопровождения программных продуктов.
Учитывая вышесказанное можно сделать вывод, что при использовании возможностей существующих ГИС задача интеграции дан-
ных из БД уже созданных систем, оказывается очень трудоемкой и требует узкой специализации программистов.
Технология метаописания структур БД.
Для решения задачи привязки к карте информации, хранящейся в уже существующих БД, в ИДСТУ СО РАН была разработана система ГеоАРМ[4], позволяющая воспроизвести основные функции имеющихся АРМов на основе оригинальной технологии обработки метаданных, обеспечивая при этом взаимодействие с ГИС. ГеоАРМ состоит из двух модулей: Настраиваемого АРМа и Картографического модуля. Разработанная система, позволяет единообразно решать различные задачи обработки данных с использованием описаний структуры БД.
Предложенная технология обработки информации в БД с использованием метаописа-ний базируется на принципах, апробированных в ИДСТУ СО РАН при создании информационно-аналитических систем (ИАС) с использованием ГИС, функционирующих в среде Интернет/интранет, которые предназначены для публикации без возможности редактирования (в режиме «только чтение») связанных между собой картографической информации (геоданных) и информации из БД [5]. Для создания ИАС был разработан модуль публикации в Интернет/интранет информации из БД, настраиваемый на работу с конкретными данными при помощи метаописа-ний их структуры и шаблонов пользовательских форм (страниц), в котором также предусмотрено взаимодействие с модулями публикации геоданных.
Метаописание структуры БД начинают строить с описания способа подключения к БД. Поддерживаются две технологии доступа к СУБД: BDE (Borland Database Engine) и ADO (Active Data Objects) (в разных версиях приложения). Затем в метаописание БД должна быть включена информация о таблицах и представлениях. В описании таблицы указывается, какие поля таблицы БД используются в системе (некоторые существующие поля могут быть исключены из описания, тогда они игнорируются системой), какими свойствами с точки зрения системы они обладают, и какие связи существуют между данной таблицей и другими таблицами.
Под связью или ссылкой из таблицы A в таблицу B понимается наличие в одном или нескольких полях таблицы A уникального для таблицы B набора значений одного или не-
скольких её полей. При этом говорят о наличии внешнего ключа [6], в таблице A. Заметим, что для того, чтобы определить связь в описании, не обязательно существование соответствующего внешнего ключа (FOREIGN KEY) в БД. Таблицу A будем называть исходной таблицей связи, а таблицу B — целевой. Поля, по которым устанавливается связь из исходной таблицы, будем называть ссылочными полями. Поля целевой таблицы, по которым устанавливается связь, должны удовлетворять свойству уникальности, т.е. в целевой таблице не должно существовать двух записей, содержащих одинаковыйнабор значенийв этих полях. Поэтому, в общем случае, связь устанавливается по полям, входящим в первичный ключ целевой таблицы. При наличии ссылки каждой записи исходной таблицы сопоставляется не более одной записи целевой таблицы.
Доступная по ссылке таблица может содержать ссылки на другие таблицы, которые, в свою очередь, могут содержать ссылки на другие таблицы, и т.д. При этом будем говорить о доступе к полям таблиц через несколько уровней ссылок.
При описании поля таблицы указывается его вид, который связан (сопоставлен) с типом поля в БД, но, кроме того, несёт и дополнительную информацию о возможных способах использования данного поля в системе. Существуют следующие виды полей:
- целочисленный — поля всех целочисленных типов;
- числовой — все типы с плавающей точкой и числовые типы, имеющие знаки после запятой;
- строковый — обычные символьные поля, содержащие произвольный набор значений;
- именованный — символьное поле, содержащее уникальные для таблицы значения, которое поэтому может использоваться для выбора записи;
- списочный — символьное поле, содержащее значения из ограниченного набора;
- логический — поле, содержащее значения "ИСТИНА" или "ЛОЖЬ";
- ссылочный — целочисленное поле, содержащее ссылку на первичный ключ некоторой таблицы (более сложные способы задания ссылок - по нескольким полям, с использованием других видов полей и т.д. также могут быть явно описаны в другой секции файла);
- графический — бинарное (BLOB) поле, содержащее файл в формате JPEG или BMP;
ИРКУТСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ПУТЕЙ СООБЩЕНИЯ
- документный — бинарное (BLOB) поле, содержащее произвольный документ. Как правило, такому полю должно быть дополнительно сопоставлено строковое поле, содержащее имя файла документа.
При этом, с одной стороны, разным типам полей может сопоставляться один и тот же вид. Например, все целочисленные типы полей, независимо от их размера, относятся к целочисленному виду. С другой стороны, разные поля одного типа могут быть отнесены к разным видам. Например, строковое поле может быть отнесено к строковому, списочному или именованному виду, в зависимости от его роли в БД.
Описание представления строится, начиная с одной базовой таблицы, при этом в него могут быть включены поля других таблиц или представлений, связанных с базовой (может быть через несколько уровней ссылок). Описание представления содержит следующую информацию: на какой таблице основано данное представление, и какие поля этой таблицы и таблиц (представлений), связанных с ней, включаются в это представление. Таким образом, можно считать, что представления в описании БД отличаются от обычных представлений (VIEW), тем, что их структура ограничена определённым видом, предназначенным для декодирования значений кодовых полей через справочники.
С использованием информации из метао-писаний в системе ГеоАРМ автоматически строятся табличные формы и формы, предназначенные для просмотра отдельных записей. На формах, которые строятся для представлений, поля, которые получены по ссылке на одну и ту же таблицу, автоматически объединяются в группы. Рядом с одним из полей, получаемым из справочника, размещается кнопка, позволяющая перейти к просмотру и редактированию этого справочника.
В том случае, если необходимо более точно управлять внешним видом формы для редактирования отдельной записи, можно явно описать способ отображения записи для таблицы или представления. При этом поля могут быть сгруппированы по видам информации, что повышает уровень восприятие информации пользователем. В данный момент поддерживается два вида группировки полей: «Блок» (поля, входящие в него, ограничены общей рамкой) и «Закладка» (поля, входящие в нее, располагаются на отдельной закладке). Причем внутри блоков и закладок могут быть организованы вложенные блоки.
В метаописании для таблиц и представлений можно задать способ формирования отчетных форм. Для этого таблицам и представлениям, для которых необходимы отчеты, сопоставляются шаблоны отчетов. Шаблоны отчетов формируются средствами MS Word. В шаблонах указываются имена полей таблиц (представлений), а так же, при необходимости, способ преобразования данных из этих полей. Под способом преобразования данных из полей при формировании отчета понимается изменение данных, получаемых из полей таблиц БД по определенным правилам. Поддерживаются следующие способы преобразования данных: склонение по падежам, отсечение части. Для обеспечения склонения данных по падежам используется свободно доступная библиотека padeg.dll[7].
Настраиваемое АРМ. Настраиваемый АРМ, используя файл метаописания БД, позволяет организовать работу с БД. Данный модуль обеспечивает выполнение следующих задач:
- интерактивное формирование метаопи-сания структуры БД;
- просмотр и редактирование содержимого БД;
- построение пользовательских запросов;
- формирование отчетов.
Для того чтобы создать метаописание структуры БД в Настраиваемом АРМе необходимо вызвать меню «Файл/Новое описание БД» и настроить соединение с БД (Рис.1). После чего в меню «Просмотр» появится пункт «База данных», где можно указать таблицы, которые необходимо включить в файл метао-писания для дальнейшей работы.
После создания описания структуры БД можно получить доступ к табличным формам для просмотра и редактирования содержимого таблиц и представлений БД (Рис. 2). При редактировании представления в табличной форме значения полей, получаемых из справочников, становятся LookUp-полями, т.е. позволяют изменять значения поля базовой таблицы с кодом-ссылкой на справочник посредством выбора из выпадающего списка соответствующего ему в справочнике значения (например, поле «Район» на Рис. 2).
Кроме того, описанные таблицы и представления можно отобразить и редактировать в виде формы (Рис. 3), при этом поля, включённые в представление из справочников, также отображаются как LookUp-поля, если они получены по ссылке непосредственно из базовой таблицы. Форма для редактиро-
Рис.1 Окно настройки параметров соединения с БД при использовании ADO
вания таблицы или представления генерируется автоматически в соответствии с описанием Поля, получаемые по общей ссылке, если не была описана другая группировка полей в Блоки или Закладки, автоматически объединяются в группы (см., например, поля «Тип ул.» и «Улица» на Рис. 3), каждой ссылке соответствует кнопка перехода к форме для редактирования записи, на которую указывает ссылка.
Реализованный в системе построитель запросов позволяет пользователю, не специалисту в программировании для баз данных, интерактивно сформулировать произвольное логическое условие для выбора записей таблицы или представления. При этом полностью исключается возможность создания запросов, содержащих ошибки с точки зрения организации данных.
В большинстве программных систем построитель произвольных запросов реализуется, как текстовый редактор с набором элементов управления для вставки в текст имён полей, их значений и операторов. Место и последовательность вставки фрагментов текста при этом не контролируется системой, поэтому легко может быть создан текст, содержащий ошибки. При
таком подходе надо учитывать, что любое сообщение об ошибке, возникшей при обработке запроса, способно поставить в тупик неподготовленного пользователя: он просто не поймёт, что ему необходимо исправить, чтобы запрос отработал в соответствии с поставленным заданием. При предлагаемом интерактивном построении запросов все сформулированные пользователем запросы, система будет способна выполнить. При этом у пользователя появляется возможность просмотреть результаты выполнения составленного им запроса и сравнить их с тем, что он ожидал получить.
В окне построителя запроса логическое выражение для условия запроса представлено в виде дерева разбора с корнем, расположенным слева (Рис 4.). Выражение представляет собой набор операций сравнения связанных между собой логическими связками «и», «или» или их отрицаниями. Под отрицанием логической связки понимается отрицание результата вычисления со связкой без отрицания. Например, "не и"(А,В) означает не(А и В). Операции сравнения задают условия на отдельные поля таблицы или представления.
Чем выше в дереве разбора находится логическая операция, тем позже она применяется, т.е. сначала вычисляются значения для находящихся под некоторым узлом дерева поддеревьев, а затем к результатам вычислений применяется операция, стоящая в данном узле. Так например для дерева, представленного выше (Рис. 4) сначала вычисляются условия на поле «Адрес», затем к результатам при-
Рис. 2. Редактирование представления в табличной форме
ИРКУТСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ПУТЕЙ СООБЩЕНИЯ
Рис. 3. Редактирование записи представления в виде формы
меняется логическая операция «или», затем вычисляется условие на поле «Улица», к результатам применяется логическая операция «или» и, наконец, вычисляется условие на поле «Управляющая организация» и к результатам применяется операция «и». В результате вычисляется выражение:
(Управляющая организация начинается с 'ООО') и
(Улица входит в ' 11-й Советский',' 12-й Советский') или
(Адрес содержит '11-й Советский' или Адрес содержит '11-й Советский')) Таким образом, на рис.4 представлен запрос для выбора всех ветхих домов, у которых название компании управляющей этими домами начинается на ООО, и расположены эти дома на улицах 11-й Советский или 12-й Советский или адрес которых содержит название этих улицах.
Картографический модуль. Данный модуль реализован при помощи пакета GIS ToolKit [8] из ГИС Панорама, с использованием карты г. Иркутска в масштабе 1:2000. Для поиска на карте объектов в соответствии с почтовыми адресами в системе реализована так называемая функция «адресный план города». Окно отображения карты содержит поля ввода для выбора имеющихся на карте домов по наименованию улицы и номеру дома.
Картографический модуль позволяет просматривать картографическую информацию, находить на карте объекты и адреса, информация о которых содержится в БД и, наоборот, находить в БД информацию, связанную с объектом карты. (Рис. 5). Также в модуле ре-
ализованы стандартные механизмы просмотра карты, такие, как загрузка карты, масштабирование, перетаскивание карты, нанесение, удаление объекта, получение информации об объекте.
Привязка БД к карте может быть осуществлена двумя способами: через геокодирование, т.е. по полям содержащим адреса домов или привязкой к произвольным объектам карты через таблицу связей.
Для первого способа при описании структуры БД должны быть указаны поля таблиц, в которых содержатся почтовые адреса. При наличии такой информации на форме для редактирования таблицы отображается кнопка «Адрес» (Рис. 3), после нажатия на которую выполняется поиск адреса. При этом открывается окно карты, улица и номер дома заносятся в поля панели поиска адреса, и, если такой адрес имеется на карте, то в окне выделяется соответствующее здание (Рис. 5). Для использования второго способа в БД должна быть создана специальная таблица привязки объектов к карте MAP_LNK (одна на всю базу), позволяющая связать любой объект карты с данными из БД (табл. 1).
Отметим, что создание такой таблицы является единственным необходимым изменением структуры исходной БД.
Поверх основной топоосновы в системе ГеоАРМ могут создаваться специализированные слои, предназначенные для нанесения на
Рис 4. Окно построителя запросов
Рис. 5. Пример окна карты с найденным зданием по адресу ул.Лермонтова д.134
карту отсутствующих там объектов (например слои «Гаражи», «Реклама» и т.д.). При этом предполагается, что пользователь не имеет права редактировать исходную топооснову, но может вносить изменения в созданные им самим специализированные слои. При необходимости включения в классификатор карты новых типов объектов, такой классификатор должен быть создан или изменён средствами ГИС Панорама.
На специализированных слоях могут быть созданы новые объекты. Предполагается, что при наличии в таблице адресов, характеризующих расположение объектов, пользователь будет находить фрагмент карты при помощи геокодирования, а затем выбирать уже имеющийся объект или создавать новый на специализированном слое, и связывать этот объект с записью таблицы.
Заключение. Система ГеоАРМ может быть настроена без перекомпиляции на работу с любыми БД и позволяет организовывать работу с картой для баз данных, в которых изначально эта возможность не была предусмотрена. Настройка системы для работы с конкретной БД может быть выполнена специалистами предметной области в достаточно сжатые сроки. После настройки системы, ГеоАРМ становится альтернативой уже существующего АРМа и в случае простых АРМов может их полностью заменить.
В настоящее время система Ге-оАРМ внедрена в администрации г. Иркутска. Была проведена настройка системы для работы с БД «Отдел жилищного хозяйства АО г. Иркутска» и «Учет рекламных конструкций на территории г. Иркутска». Также при помощи данной системы организована работа со слоями МГИС г. Иркутска: «Многоквартирные дома», «Аварийные раскопки», «Детские и спортивные площадки», «Ветхое жилье».
БИБЛИОГРАФИЯ
5.
Таблица 1
Структура таблицы привязки объектов к карте
MAP LNK
KIND Код таблицы в БД
ID Указатель на ключевое поле таблицы с данными из тематической БД (таблица определяется значением поля KIND)
ID L Номер слоя карты
ID_OBJ Уникальный номер объекта на карте в слое ID_L
http://esri.com GIS and Mapping Software. http://mapinfo.com MapInfo Corporation. http://www.bentley.com Bentley Systems, Incorporated.
Бычков И.В. Метаописание баз данных как основа интеграции информационно-справочных систем и ГИС/ И.В. Бычков, Е.С. Фереферов, А.Е. Хмельнов//Вычисли-тельные технологии. Том 12.- Новосибирск: ИВТ СО РАН.- 2007.- № 5.- С. 41-51. Ружников Г.М. Геоинформационная система органов государственной власти Иркутской области/Г.М. Ружников, А.Н. Моисеев, В.А. Оглоблин, И.В. Бычков, Е.Л. Кухаренко, А.Е. Хмельнов// Информационный бюллетень.-2001.- №2(29)-3(30).-С.30.
К.Дж.Дейт. Введение в системы баз данных. М.: Диалектика, 1998. 7.http://www.delphikingdom.com/asp/viewite m.asp?catalogid = 412 Склонение фамилий, имен и отчеств по падежам Библиотека функций.
http://www.gisinfo.ru ГИС Панорама.
6.
8.