Февраль 2005


Сделано в России


Л. Рейнгольд,
А. Сорокин

Введение в технологии Oracle для работы с пространственными данными
(Размышления по мотивам доклада М.Тернилла на Oracle TechForum 2004)

Предисловие.

Направление “Работа с пространственными данными” имеет ту особенность, что оно пока не очень занимает наших специалистов по базам данных в силу специфических качеств контента, а пользователи подобных систем, если и используют СУБД, то подходят к СУБД, как к “черному ящику”, хранящему только данные, и не вполне используют встроенные возможности СУБД. Публикаций на русском языке по этой тематике изчезающе мало, а тема, по нашему мнению, является актуальной для очень многих российских муниципальных и государственных структур. Поэтому нас очень заинтересовал доклад Майкла Тернилла “Oracle Spatial & Location Technologies” (Mike Turnill, EMEA Product Manager - Spatial Server Technologies Oracle Corporation), который состоялся в прошлом году на Московском форуме Oracle TechForum 2004. В этой публикации мы предприняли попытку кратко изложить и прокомментировать основное содержание этого доклада, посвященного поддержке в программной среде Oracle геоинформационных технологий, используя собственный, может быть иногда субъективный, опыт по этой тематике. Презентацию доклада Майкла Тернилла “Oracle Spatial & Location Technologies” можно найти по адресу http://www.oracle.com/global/ru/events/techforum/10gSpatial_Mike%20Turnill.pdf. Отдельные из нее слайды, характеризующие особенности последней версии Oracle Database 10g, использованы в качестве иллюстраций в этой статье.

Пространственные данные и механизм Oracle Spatial

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

Рост интереса к ГИС связан и с наметившимся в последнее время бурным ростом использования технологий глобального позиционирования (GPS), развитие которых невозможно без обеспечения пространственной основы для отображения подобных данных. Эти технологии становятся доступны повсеместно и начинают встраиваться с различными целями во многие предметы массового потребления. Так к 2008 году 80% новых автомобилей будет оснащено навигационными приборами. Актуальной становится также задача наблюдения за объектами: местоположение посылок, грузовиков, людей, отслеживается при помощи технологий GPS, а их идентификация осуществляется с использованием других современных технологий, например, RFID. То есть пространственная информация становится востребованной в CRM и ERP системах. Организация, ранее не использовавшая пространственное представление своих данных, теперь, получает в рамках общей концепции возможность представить те же самые данные в пространстве.

Таким образом, во многих практических задачах актуальной является обработка информации, опирающаяся на пространственные данные. Но до недавнего времени обработка пространственных данных применялась в специализированных приложениях, используемых специалистами достаточно узкого профиля. В связи с необходимостью хранения большого количества информации из различных источников и оперативного доступа к ней появилась потребность в стандартизации средств формализованного представления и хранения графических данных. Наиболее известные разработчики программного обеспечения для обработки пространственных данных, такие, как ESRI и Intergraph заложили основы стандартов и общей идеологии построения подобных систем. Но традиционные средства ГИС (геоинформационные системы) были преимущественно ориентированны на работу с локальными файлами, не допускающими множественное изменение и анализ общих данных.

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

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

На сегодняшний день Oracle - единственная СУБД, предоставляющая интегрированные в базу данных возможности по работе с пространственными данными. Она оптимизирована для решения задач эффективного манипулирования этими данными и их анализа на уровне ядра базы данных. Это решение позволяет во многих случаях отказаться от сложных и дорогостоящих клиентских приложений, эффективно реализуя специализированную логику на стороне сервера. Использование встроенных в ядро базы данных языков программирования (PL/SQL и Java), позволяет гибко наращивать функциональность сервера, разрабатывая специализированные расширения для обработки пространственных объектов на стороне сервера, обеспечивается возможность использования единых и применяемых в одном месте правил обработки к данным, поступающим из различных источников.

Oracle Spatial обеспечивает эффективное хранение и доступ как к векторному, так и к растровому представлению пространственных данных. В терминологии ГИС набор однотипных по смыслу векторных объектов (точек, линий или полигонов) в пределах некоторой области пространства образует слой. C точки зрения организации классической базы данных, слой можно соотнести с таблицей или с результатом запроса к одной или более таблиц базы данных. В Oracle поддерживаются объекты в точечных, линейных и полигональных слоях. Существует также возможность поддержки разнородных объектов в пределах одного слоя/таблицы – так называемые коллекции.

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

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

Для решения этих задач в Oracle Database 10g применяется ряд программных компонентов: Oracle Spatial, Oracle Locator и Oracle MapViewer, место которых в обработке данных ГИС показано на слайде из презентации Майкла Тернилла (Рис.1).


Рис.1

В этих разработках учтены требования стандартов, уже сложившихся на сегодняшний день в сфере решений для ГИС:

  • Open GIS Consortium, OpenLS;
  • SQL, LIF;
  • ISO TC-211, ТС-204;

    Сильной стороной решений от Oracle является то, что в их основе лежит глубокая интеграция с другими приложениями Oracle и ее партнеров:

    • E-Business Suite в сфере электронной торговли;
    • сервисами, предоставляемыми по территориальному принципу;
    • приложениями партнеров (например в области управления автомагистралями, управления недвижимостью и др.).

    Oracle последовательно совершенствует систему обработки пространственных данных, появившуюся в версии Oracle 7.1.6. В каждой версии возможности системы расширялись. Не стала исключением и версия Oracle Database 10g.

    На сегодняшний день Oracle Database 10g предоставляет уникальные возможности для работы с пространственными данными. Поддерживаются практически все необходимые типы пространственных данных. Высокоэффективная индексация пространственных данных позволяет выполнять быстрый доступ к этим данным с использованием всех возможностей SQL. Хранение пространственной информации возможно в виде точек, линий, многоугольников (простых и с отверстиями), окружностей и дуг, а также в виде составных объектов. Пространственные индексы обеспечивает полное покрытие пространственных объектов, хранящихся в таблице. Индексация пространственных данных основана на использовании двух типов индексов: QuadTree и RTree. Индексы типа QuadTree больше подходят для таблиц, к которым чаще выполняются сложные пространственные запросы, но не вполне эффективны для таблиц, в которые интенсивно добавляются новые объекты или изменяются уже хранящиеся объекты. Индексы RTree быстрее работают в ситуациях, когда интенсивно добавляются или изменяются объекты, но индексы данного типа не так эффективны для обработки сложных пространственных запросов, как в случае использования QuadTree.

    Для эффективного формирования конечных выборок в Oracle 10g используется двухуровневая система фильтров: грубый (SDO_FILTER) и точный (SDO_RELATE). Обработка любого запроса к пространственной таблице разделена на два этапа. На первом этапе формируется приближенная выборка при помощи первого грубого фильтра, а на втором этапе (если этого требует специфика запроса) точный фильтр формирует окончательный результат на основе данных, сформированных на первом этапе. Грубый фильтр работает намного быстрее точного фильтра и хорошо справляется с высокоскоростным формированием контекстной выборки, которая необходима для отображения картографической фоновой информации. Навигация по карте, смена масштаба отображения карты, смещение (панорамирование) - все это примеры запросов к картографическим данным, требующие быстрой работы первичного грубого фильтра. В этом случае не так важна точность выборки, как важна скорость и минимизация времени отклика, а значит и реакции клиентского приложения на действия пользователя.

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


    Рис.2

    В Oracle Database 10g реализован полноценный набор пространственных функций и операций: объединение пространственных объектов, вычисление разности пространственных объектов, расчет пересечения пространственных объектов, XOR операция над пространственными объектами (исключающее ИЛИ), построение буфера вокруг одного или нескольких объектов, расчет центральной точки, построение минимального полигона, охватывающего заданные объекты. Также для каждого объекта можно рассчитать длину (в случае линии или дуги), площадь и периметр (в случае полигонов).

    Основная функциональность для работы с пространственными данными, начиная с Oracle Database 10g, представлена двумя модулями: Locator и Spatial. Радикально изменилась технология лицензирования пространственных расширений СУБД. Модуль Locator теперь входит во все варианты поставки Oracle Database 10g. Его функциональность в большинстве случаев позволяет решать достаточный для массовых потребителей круг задач, связанных с хранением, вводом и отображением пространственных данных, а также их анализом. Так практически все задачи ведения графической информации на муниципальном уровне могут быть реализованы модулем Locator.

    Если раньше пространственные расширения поставлялись только с дорогостоящей версией СУБД Oracle Enterprise Edition и требовали при этом дополнительной оплаты при лицензировании, то теперь они доступны в Standard Edition без дополнительной оплаты. Enterprise Edition теперь содержит расширенные функции, востребованные в основном специалистами по геодезии и картографии.

    Основные функций модуля Locator:

    • поддержка работы с точками, линиями и многоугольниками;
    • поддержка 2-х, 3-х и 4-х мерных данных;
    • пространственные операторы (поиск в пределах заданного расстояния, пространственные отношения);
    • поддержка систем координат;
    • разделение таблиц длинных транзакций;
    • репликация объектов.

    Для решения более сложных задач реализован модуль Spatial. Он входит в расширенный вариант поставки Oracle Database 10g Enterprise Edition и требует дополнительного лицензирования. В него входят все функции модуля Locator, а также сосредоточены специализированные аналитические функции по работе с пространственными данными, основными из которых являются:

    • Поддержка линейных систем координат. Системы линейных координат в Oracle 10g позволяют связать некоторое измерение с 2-х или 3-х мерной точкой, расположенной на линии, ломанной или многоугольнике. Измерение вычисляется пропорционально расстоянию от начальной точки геометрической фигуры. То есть осуществляется измерение расстояния по произвольной пространственной кривой.
    • Дополнительные возможности агрегации пространственных данных.
    • Расширенное преобразование координат. Трансформация проекций - операция преобразования условных плановых прямоугольных координат пространственных объектов при переходе от одной картографической проекции к другой. Может осуществляться непосредственно, а также через географические координаты, используя уравнения исходной и производной проекций, а также путем эластичного преобразования на основе аппроксимации по сети контрольных точек.
    • Поддержка сетевой модели данных.
    • Реализация топологической модели данных.
    • Функции GeoRaster.
    • Функции Geocoder.
    • Функции пространственного анализа.

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

    В последнее время все больше ощущается потребность в публикации содержимого баз данных в Интернет или корпоративной сети Интранет. Это относится и к пространственным данным. Решением для подобных задач, интегрированным в Oracle Application Server является, модуль MapViewer. Он входит в состав всех версий Application Server. В него встроена поддержка самых распространенных и перспективных на сегодняшний день инструментов повышения гибкости и интерактивности Интернет и Интранет приложений. Это XML, JAVA и JSP API.

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

    Компонент MapViewer реализует высокоэффективную растеризацию векторной картографической выборки в наиболее распространенные в Интернет форматы PNG и JPEG для предоставления через Web-интерфейс. Также имеется возможность предоставить запрошенные данные в векторном формате FLASH.

    Модуль Network Manager реализует новую модель для хранения в БД сетевых структур (графов). Сетевая модель описывается набором узлов и связей. Явным образом поддерживается и хранится информация о связности сети. Атрибуты назначаются на уровне связей и узлов. Возможна реализация логической или географической схемы сети. Пример: неориентированная сеть со стоимостью. К поддерживаемым операциям относятся:

    • наикратчайший путь, поиск в пределах заданного расстояния;
    • ближайший сосед, поиск габаритного прямоугольника, поиск остовного дерева минимальной стоимости;
    • анализ с ограничениями (глубины, стоимости, расстояния).

    Достаточно адекватная реальной ситуации и подробная модель уличной/транспортной сети позволяет в этой среде рассчитывать, например, наиболее оптимальный маршрут от ближайшего пункта скорой помощи до местоположения срочного вызова.

    Модуль Topology Manager в Oracle 10g реализует топологическую модель хранения пространственных данных. Топология в ГИС - та часть пространственных данных, которая служит для описания взаимного положения геометрических объектов и их частей. Реализация поддержки топологических отношений в Oracle Spatial - достаточно значительный шаг. Топологическое представление пространственных данных позволяет осуществлять контроль наложений объектов, выполнять согласование изменения границ соприкасающихся полигонов, выполнять контроль целостности (замкнутости) контуров, выявление дублирований точек или линий (частичное или полное) и т.п. Например, наложение земельных участков друг на друга в реальной жизни недопустимо. При отсутствии поддержки топологической связности подобные зависимости очень сложно реализовать. Можно столкнуться с ситуацией, когда сможет происходить несогласованное изменение объектов, что неприемлемо и противоречит той модели, при помощи которой мы хотим описать объекты реального мира. В этом случае топологическая модель данных незаменима.

    Модуль Geo Raster дополняет модель данных Oracle Database 10g новым типом пространственных данных - растровых, позволяющим эффективно размещать в базе данных спутниковые изображения; данные удаленных сенсоров, многополосные и многоуровневые изображения; использовать для хранения метаданных схем XML.

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

    Расширенные функции анализа пространственной информации Oracle Database 10g позволяют осуществлять исследование информации на основе шаблонов обработки пространственных данных и могут использоваться, в частности, для анализа страховых рисков и преступлений; демографического анализа; составления профилей клиентов; решения эпидемиологических задач, оптимального размещения предприятий. При этом наглядными и простыми в использовании средствами могут решаться сложные задачи конечных пользователей системы.

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


    Рис.3

    Сказанное выше позволяет сделать вывод о том, что использование технологий разнообразных технологических решений по обработке пространственной информации, встроенных в Oracle Database 10g обеспечивает увеличение эффективности решения задач, сокращение рисков в процессе эксплуатации информационной системы вследствие того, что:

    • пространственная информация интегрирована непосредственно в Oracle Database 10g;
    • система масштабируема, возможна поддержка хранения и обработки тысяч терабайт информации и тысяч пользователей;
    • возможна разработка безопасных и высокопроизводительных приложений с распределенным хранением и доступом к данным, с использованием инфраструктуры Интернет;
    • программное обеспечение развертываются на любой серверной платформе (Unix, Linux, Windows);
    • поддерживается доступ к данным и работа всех критических компонентов системы в режиме 24x7, эффективные средства, обеспечивающие интеграцию и совместное использование информации.

    Заключение

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

  • E-mail this page