Разработчики многих крупных ГИС-проектов, предполагающих использование больших объемов разнородной информации, всегда стремились использовать Oracle в качестве основного хранилища данных. Действительно, для работы с промышленными объемами информации СУБД Oracle представляется чрезвычайно привлекательным решением, хотя хранение в ней пространственных данных и организация ее взаимодействия с ГИС-приложениями в течение довольно долгого времени представляли собой две большие проблемы. Задача витала в воздухе, и почти одновременно появились два продукта, призванные ее разрешить, - SDE (Spatial Database Engine) компании ESRI (http:// www.esri.com/sde) и Oracle8i Spatial компании Oracle (http://www.oracle.com/st/cartriges/spatial). Первый из них - сервер, обеспечивающий взаимодействие между различными базами данных, в том числе разработки корпораций IBM, Informix, Microsoft, Oracle и Sybase, и ГИС-продуктами ESRI, такими, как ARC/INFO, ArcView GIS, ArcExplorer. Второй - Oracle8i Spatial - является расширением СУБД Oracle для работы с пространственными данными и представляет собой, по сути, СУБД, дополненную новыми операторами, функциями и типами данных.

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

В Oracle8i Spatial представлена новая технология хранения пространственных данных в реляционной базе. Этот вариант Oracle дополнен новыми типами данных, такими, как “точка”, “линия” и “полигон”, характерными для большинства существующих ГИС. Кроме того, в ней предусмотрены некоторые дополнительные типы пространственных объектов, например “круг” и “дуга”.

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

Единственным инструментом, необходимым для того, чтобы манипулировать пространственными данными в среде Oracle8i Spatial, является SQL. Правда, он был дополнен новыми операторами и функциями. Например, функция SDO_GEOM.SDO_POLY_INTERSECTION генерирует полигон, представляющий собой пересечение двух пространственных объектов, а SDO_GEOM.AREA вычисляет площадь двумерного объекта. Другими словами, комбинация этих двух функций позволит выбрать все пространственные объекты базы данных, площадь пересечения которых друг с другом превышает некое заданное значение. Всего в Oracle8i Spatial входит около полутора десятков новых операторов и функций.

Пространственные запросы в новой СУБД обрабатываются с использованием двухуровневой схемы: на первом этапе применяются приблизительные алгоритмы, позволяющие отобрать некоторое количество данных, способных удовлетворить запрос. Для этого набора действуют уже более точные вычислительные алгоритмы, требующие больших вычислительных ресурсов. По такой схеме пространственные запросы в Oracle8i Spatial обрабатываются предельно быстро.

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

Ольга Блинкова, научный редактор “ГИС-Обозрения”, blinkova@seabed. kharkov.ua.

Версия для печати