Источник: An Oracle White Paper, Август 2005 г., http://www.oracle.com/technology/products/spatial/pdf/10gr2_collateral/locator_twp_10gr2.pdf
Интегрирование позиционных данных в бизнес-приложения позволяет организациям принимать лучшие решения, более эффективно обслуживать клиентов и сокращать расходы.
Oracle Locator – это механизм всех редакций СУБД Oracle (Standard Edition, Standard Edition One и Enterprise Edition), который реализует прищущие этой СУБД функции управления данными, формирования запросов и анализа применительно к позиционным данным; все эти функции доступны через стандартный SQL. Данная функциональность является основой для развертывания бизнес-приложений, использующих позиционные данные, разработанных партнерами географических информационных систем (Geographic Information Systems (GIS)) и сервисов, базирующихся на позиционных данных. Разработчики могут расширить существующие инструменты и приложения на базе СУБД Oracle, так как с Oracle Locator они легко могут использовать позиционные данные в свои приложения и сервисы. Это возможно, так как позиционные данные полностью интегрированы с сервером Oracle. Географическими и позиционными данными можно манипулировать, используя ту же самую семантику, которая применяется к данным типов CHAR, DATE или INTEGER, и эта семантика знакома всем пользователям SQL. Тем самым Oracle Locator отменяет все расходы на индивидуальные, собственные (proprietary) системы; он поддерживается всеми ведущими разработчиками GIS. Oracle Locator также предоставляет наивысшие в отрасли уровни безопасности, производительности, масштабируемости и управляемости, обеспечиваеиые Oracle Database 10g для критически важных активов в базе позиционных данных.
В данном материале представлены функции Oracle Locator, включая новые функции, появившиеся в первом и втором релизах Oracle Database 10g.
Примечание: Oracle Spatial 10g – это дополнительный механизм (option) Enterprise Edition, который расширяют Oracle Locator продвинутыми средствами работы с пространственными данными в GIS-приложениях и информационных системах масштаба предприятия, использующих пространственные данные. Эти средства включают управление георастровыми данными (GeoRaster data management), сетевые и топологические модели данных, механизмы (engines) геокодирования (geocoding) и маршрутизации (routing), функции анализа пространственных данных и другие. Более подробная информация находится в материалах Oracle Spatial 10g Technical White Paper и Oracle Spatial Option and Oracle Locator Data Sheet.
Наиболее полное и подробное описание функций Oracle Locator и Oracle Spatial можно найти в документации Oracle Spatial User's Guide (Appendix B) и Reference 10g Release 2 (10.2).
Внутренне позиционные данные смоделированы по слоям (layers) с использованием геометрических столбцов (geometry column) в унифицированных таблицах с применением общей координатной системы. Например, представление города может включать отдельные слои для показа районов или кварталов домов, выделенных по социо-экономическим признакам, для показа расположения каждого жилого или функционального строения, совокупностей водных, газовых и канализационных сетей и электрических линий.
Поскольку все эти слои используют одну и ту же базу данных и представление о геометрии Земли (координаты (coordinate), геоид (geoid) и проекции (projection)), они могут быть соотнесены (между собой) через соответствующие (общие) местоположения.
Помимо перечисленных выше геометрических элементов Oracle Locator поддерживает следующие геометрические типы:
Типичные запросы специфицируют “окно интересов” (window of interest) и выбирают все данные, соответствующие или содержащиеся этом окне.
Индекс на базе R-дерева аппроксимирует каждый геометрический объект одним наименьшим прямоугольником, который включает в себя этот геометрический объект; этот прямоугольник называется MBR (minimum bounding rectangle – минимально ограничивающий прямоугольник).

Для слоя геометрических объектов индекс на базе R-дерева состоит из иерархического индекса по MBR всех геометрических объектов в этом слое. Индексы на базе R-деревьев быстрые, так как работают непосредственно с геодезическими данными. Поэтому они являются предпочитаемым механизмом индексирования для работы с пространственными данными.
Геодезические данные – это данные, состоящие из угловых (angular) координат (ширина и высота (longitude and latitude)), которые определяются относительно некоторого представления фигуры Земли, или базиса (datum).

Пространственный индекс использует расширяемый механизм индексирования в Oracle Database 10g, который обеспечивает операции поддержки этого индекса при вставке (insert), изменении (update) и удалении (delete). Это значительно облегчает его использование.
Oracle Locator также предоставляет функцию, которая вычисляет расстояние между двумя геометрическими объектами. Она полезна в запросах позиционных сервисов, таких как "определите ближайшие к аэропорту 10 отелей и расстояние к каждому из них в милях." Более продвинутые функции, такие как вычисляемая область (computing area) или возвращение новых геометрических объектов, таких как буферы (buffers), центроиды (centroids), объединения (unions), пересечения (intersections) или некоторые пространственные агрегаты, требуют использования механизма Oracle Spatial.
10g производительность становится функцией от количества фактически выбранных данных. Производительность оптимизируется через использование пространственного индекса и модели двухуровневого запроса. Эта модель значительно снижает непроизводительные издержки при загрузке данных и обработке запросов. Она обеспечивает превосходную масштабируемость по мере роста объема пространственных данных. Первый уровень, или первичный фильтр, позволяет провести быструю селекцию небольшого количества записей-кандидатов и перейти ко второму фильтру.
Первичный фильтр использует аппроксимации, хранимые в пространственном индексе, чтобы сократить сложность вычислений. Вторичный фильтр применяет точную вычислительную геометрию к результирующему набору первичного фильтра. Эти точные вычисления и приводят к заключительному ответу на запрос. Операции вторичного фильтра требуют более интенсивных вычислений, но они применяются к относительно небольшому результирующему набору первичного фильтра. Данные могут быть возвращены приложениям на основе этих аппроксимаций.

Запросы могут быть пространственно ограничены, как определено “областью интересов” ("area of interest"), выбранной пользователем. Исключение данных, не соответствующих этой области интересов, во время обработки запросов обеспечивает оптимальные уровни производительности.
Запросы к позиционным данным, использующие стандартный SQL, могут быть сделаны различными способами.
Например, экстракты в виде двухразмерного окна (two-dimensional window extracts) возможны для задания поиска по диапазону значений (range searches), по критерию близости (proximity searches) и поиска полигонов (polygon searches).
В дополнении к модели систем координат, предоставляемой с предыдущими версиями, Oracle Locator в Oracle Database 10g Release 2 обеспечивает поддержку систем координат на основе модели данных и набора данных группы European Petroleum Survey Group (EPSG). Поддержка модели EPSG обеспечивает преимущества стандартизации, расширенной поддержки и гибкости для нефтяных и газовых компаний, поставщиков георастровых данных и пользователей GIS в целом.
Пользователи могут создавать пространственные индексы по позиционным данным, хранимых в реляционных столбцах (например, в столбцах высоты и широты). Пространственные операторы могут пользоваться как индексами на базе функций, так и традиционными пространственными индексами (spatial index). Пространственный ндекс сделает возможным вызов пространственных операторов на этих реляционных столбцах без необходимости создавать столбец SDO_GEOMETRY.
Это полезно для геобизнес-приложений, у которых есть схема для хранения позиционных данных, но которые не могут ее изменять, чтобы перенести эти позиционные данные в столбец типа SDO_GEOMETRY.
Oracle Locator в первой версии Oracle Database 10g показал значительные улучшения производительности в сравнении с версией 9.2:
Во второй версии Oracle Database 10g производительность запросов с индексами на базе R-деревьев улучшилась. Другие возможности Oracle Locator могут использоваться для дальнейшего производительности.
Для параллельных запросов с секционированными пространственными индексами (partitioned spatial indexes) производительность масштабируется по числу CPU, используемых для выполнения этого запроса. Построение пространственных индексов на базе R-деревьев параллельным образом может очень резко сократить время создания индекса для очень больших не_точечных (non-point) пространственных наборов данных. Функции агрегирования пространственных данных ускоряют выборку больших наборов объектов из SDO_GEOMETRY. (Замечание. Oracle Locator включает функцию SDO_AGGR_MBR; все остальные пространственные функции агрегирования включены только в опцию Oracle Spatial.)
Oracle Locator в полной мере использует увеличенные лимиты на размеры баз данных, высоко производительные утилиты сопровождения сверхбольших баз данных (VLDB), репликацию, менеджер рабочего пространства (управление версиями) (workspace manager (versioning)), более быстрое резервирование и восстановление и секционирование. Только пользователи свойственных для Oracle пространственных типов данных могут в полной мере воспользоваться такими функциями, как секционирование, репликация, построение и запросы параллельных индексов, многоуровневая безопасность, определяемая требованиями пространственных данных или приложений (spatially-driven multi-level security). Эти функции не доступны или функционально ограничены при использовании типов данных LONG RAW или BLOB. Весь диапазон утилит Oracle (в том числе SQL*Loader) также может быть использован, чтобы облегчить миграцию и помочь модернизировать приложения, которые используют функции позиционных сервисов. Некоторые из этих ключевых для приложений масштаба предприятия функций описаны ниже.
Секционирование обеспечивает значительные улучшения производительности, масштабируемости и управляемости, включая следующее:
Секции также могут разделяться, объединяться и обмениваться.
Для некоторых наборов пространственных данных и типов/параметров индексов параллельное создание индекса может существенно повысить производительность построения индексов и привести к значительной экономии времени. Большие не_точечные (non-point) наборы данных (обычно используемые во многих стандартных GIS-приложениях) могут продемонстрировать значительные улучшения производительности.
Например, распределенные системы, в которые входят географически разнесенные, но логически реплицируемые web-сайты, могут использовать синхронную репликацию объектов пространственных данных по многим базам данных.
Замечание: Конфигурация Advanced Replication со многими мастер-узлами (multimaster replication) предлагается только с базами данных редакции Enterprise Edition. За более подробной информацией о функциях Advanced Replication следует обратиться к руководству Oracle Database Advanced Replication.
Рабочие пространства могут совместно использоваться для:
| Функциональность | Поддержка Standard/Enterprise Edition |
|---|---|
| Построение параллельных пространственных индексов | Поддерживается только в Enterprise Edition |
| Параллельные пространственные индексы | Поддерживается только в Enterprise Edition |
| Секционированные пространственные индексы |
Требует Partitioning Option в Oracle Enterprise Edition
Не поддерживается в Standard Edition |
| Расширенная репликация с многими мастер-узлами (multimaster replication) для объектов SDO_GEOMETRY |
Поддерживается только в Enterprise Edition
(За более подробной информацией обращайтесь к документации по Oracle Advanced Replication.) |
За более подробной информацией о доступности функций в редакциях Oracle, следует обратиться к материалу Oracle Database Licensing Information (документация по Oracle Database).
Корпорация Oracle – ведущий участник (Principal Member) открытого консорциума по геопространственным данным ODG (Open Geospatial Consortium) и активно участвует в соответствующем Техническом комитете (Technical Committee). Oracle Database 10g Release 1 (10.1.0.4) и Oracle Locator соответствуют спецификации OpenGIS Simple Features Specification for SQL, Revision 1.1, Types and Functions Alternative. Корпорация Oracle также привержена к поддержке нового языка GML (Geographic Markup Language) консорциума ODG, а также интерфейсов Open Location Service. Объектно-реляционная модель, используемая Oracle Locator для хранения геометрических объектов, также соответствует спецификациям, связанным с представлением в SQL92 точек, линий и полигонов.
Список партнеров доступен на www.oracle.com/technology/products/spatial .
Oracle принадлежит 80-90% доля рынка управления базами геопространственных данных (IDC, Oracle 10g: Spatial Capabilities for Enterprise Solutions, Sonnen
and Morris, Feb. 2005). Клиенты и партнеры полагаются на то, что Oracle обеспечит производительность, масштабируемость, безопасность и легкость использования для их пространственных приложений. Oracle Locator в Oracle Database 10g развивается в сторону новых уровней производительности и включает богатый набор характеристик, который позволяет любому разработчику использовать Oracle для развертывания GIS, бизнес-приложений на основе позиционных данных, и беспроводных услуг на базе позиционных данных.