Оглавление:
Введение
Каждая база данных Oracle включает развитые средства хранения, формирования запросов и анализа позиционных (location) данных. Эти средства, своойственные для базы данных Oracle, позволяют пользователям формировать запросы об относительном местоположении, например, в таких случаях, как расстояние до первого ответившего по сигналу тревоги, как продажи в разрезе территорий или распределение обслуживающего персонала по пунктам поддержки.
Интегрирование позиционных данных в бизнес-приложения позволяет организациям принимать лучшие решения, более эффективно обслуживать клиентов и сокращать расходы.
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).
Геометрия, слои
Oracle Locator поддерживает три основных геометрических объекта, которые представляют географические и позиционные данные:
- Точки (Points): Точки могут представлять позиции таких физических объектов, как строения, пожарные машины, нефтяные платформы, товарные вагоны или передвигающиеся транспортные средства.
- Линии (Lines): Линии могут представлять позиции таких объектов, как дороги, железнодорожные линии, коммуникации коммунального хозяйства или линии разломов земной поверхности.
- Полигоны (многоугольники) и комплексные полигоны с анклавами (Polygons and complex polygons with holes): Полигоны могут представлять такие объекты, как города, районы, затопленные долины или нефтяные и газовые поля. Полигон с анклавом может представлять участок земли, окружающий болото.
Внутренне позиционные данные смоделированы по слоям (layers) с использованием геометрических столбцов (geometry column) в унифицированных таблицах с применением общей координатной системы. Например, представление города может включать отдельные слои для показа районов или кварталов домов, выделенных по социо-экономическим признакам, для показа расположения каждого жилого или функционального строения, совокупностей водных, газовых и канализационных сетей и электрических линий.
Поскольку все эти слои используют одну и ту же базу данных и представление о геометрии Земли (координаты (coordinate), геоид (geoid) и проекции (projection)), они могут быть соотнесены (между собой) через соответствующие (общие) местоположения.
Помимо перечисленных выше геометрических элементов Oracle Locator поддерживает следующие геометрические типы:
- Отрезки дуги (Arc strings)
- Составные многоугольники (Compound polygons)
- Круги (Circles)
- Прямоугольники (Rectangles)
Индексирование пространственных данных: R-деревья
Oracle Locator применяет пространственные индексы (spatial indexes) – или индексы на базе R-деревьев (R-tree indexes) – к позиционным данным в базе данных Oracle. Индексы на базе R-деревьев просто создать и они почти не требуют настройки для достижения оптимальной производительности. Эти индексы могут быть созданы на двух, трех или четырех измерениях пространственных данных.
Типичные запросы специфицируют “окно интересов” (window of interest) и выбирают все данные, соответствующие или содержащиеся этом окне.
Индекс на базе R-дерева аппроксимирует каждый геометрический объект одним наименьшим прямоугольником, который включает в себя этот геометрический объект; этот прямоугольник называется MBR (minimum bounding rectangle – минимально ограничивающий прямоугольник).
Для слоя геометрических объектов индекс на базе R-дерева состоит из иерархического индекса по MBR всех геометрических объектов в этом слое. Индексы на базе R-деревьев быстрые, так как работают непосредственно с геодезическими данными. Поэтому они являются предпочитаемым механизмом индексирования для работы с пространственными данными.
Геодезические данные – это данные, состоящие из угловых (angular) координат (ширина и высота (longitude and latitude)), которые определяются относительно некоторого представления фигуры Земли, или базиса (datum).
Пространственный индекс использует расширяемый механизм индексирования в Oracle Database 10g, который обеспечивает операции поддержки этого индекса при вставке (insert), изменении (update) и удалении (delete). Это значительно облегчает его использование.
Операторы для работы с пространственными данными
Взаимоотношения различных геометрических особенностей может быть определено через применение операторов сравнения, таких как SDO_RELATE, SDO_CONTAINS, SDO_COVERS, SDO_ANYINTERACT (any interaction) и других. А это позволяет отвечать на такие запросы, как "перечислите все прилегающие к школам зоны, пересекаемые этой линией железной дороги" или "найдите все пункты продажи пиццы внутри данной области." В состав Oracle Database 10g Release 1 были включены новые операторы отношений в качестве удобных альтернатив использованию оператора SDO_RELATE со значением маски.
Oracle Locator также предоставляет функцию, которая вычисляет расстояние между двумя геометрическими объектами. Она полезна в запросах позиционных сервисов, таких как "определите ближайшие к аэропорту 10 отелей и расстояние к каждому из них в милях." Более продвинутые функции, такие как вычисляемая область (computing area) или возвращение новых геометрических объектов, таких как буферы (buffers), центроиды (centroids), объединения (unions), пересечения (intersections) или некоторые пространственные агрегаты, требуют использования механизма Oracle Spatial.
Быстрый доступ с двухуровневыми запросами
До недавнего времени производительность базы данных в основном определялась размером базы и эффективностью индексов. Но с Oracle Locator в Oracle Database
10g производительность становится функцией от количества фактически выбранных данных. Производительность оптимизируется через использование пространственного индекса и модели двухуровневого запроса. Эта модель значительно снижает непроизводительные издержки при загрузке данных и обработке запросов. Она обеспечивает превосходную масштабируемость по мере роста объема пространственных данных. Первый уровень, или первичный фильтр, позволяет провести быструю селекцию небольшого количества записей-кандидатов и перейти ко второму фильтру.
Первичный фильтр использует аппроксимации, хранимые в пространственном индексе, чтобы сократить сложность вычислений. Вторичный фильтр применяет точную вычислительную геометрию к результирующему набору первичного фильтра. Эти точные вычисления и приводят к заключительному ответу на запрос. Операции вторичного фильтра требуют более интенсивных вычислений, но они применяются к относительно небольшому результирующему набору первичного фильтра. Данные могут быть возвращены приложениям на основе этих аппроксимаций.
Запросы могут быть пространственно ограничены, как определено “областью интересов” ("area of interest"), выбранной пользователем. Исключение данных, не соответствующих этой области интересов, во время обработки запросов обеспечивает оптимальные уровни производительности.
Запросы к позиционным данным, использующие стандартный SQL, могут быть сделаны различными способами.
Например, экстракты в виде двухразмерного окна (two-dimensional window extracts) возможны для задания поиска по диапазону значений (range searches), по критерию близости (proximity searches) и поиска полигонов (polygon searches).
Геометрическая модель Земли как единого целого для поддержки геодезических координат
Oracle Locator предоставляет геометрическую модель Земли как единого целого, в которой учитываются искривления поверхности Земли при выполнении вычислений с геодезическими данными. Функция Oracle Locator по определению расстояния возвращает точные значения как для проектируемых, так и для геодезических данных (то есть, угловые координаты, определенные относительно некоторой модели формы Земли). Oracle поддерживает более 30 из наиболее часто используемых единиц измерений для расстояний и областей, которые полезны как для геодезических, так и для проектируемых данных, то есть, фут – квадратный фут (foot/square foot), метр – квадратный метр (meter/square meter), километр – квадратный километр (kilometer/square kilometer) и так далее.
Проекции и координатные системы – Поддержка на основе модели EPSG (новое в Oracle 10G RELEASE 2)
Oracle Locator поддерживает более 1000 широко используемых координатных систем, применяемых при составлении карт; он также поддерживает определенные пользователями системы координат. Он обеспечивает четкие преобразования проекций карт векторных объектов из одной системы координат в другую. Эти преобразования могут происходить с геометрическим объектом (geometry-level basis) или целой таблицей (entire layer (table)) за один раз.
В дополнении к модели систем координат, предоставляемой с предыдущими версиями, Oracle Locator в Oracle Database 10g Release 2 обеспечивает поддержку систем координат на основе модели данных и набора данных группы European Petroleum Survey Group (EPSG). Поддержка модели EPSG обеспечивает преимущества стандартизации, расширенной поддержки и гибкости для нефтяных и газовых компаний, поставщиков георастровых данных и пользователей GIS в целом.
Обеспечение индексирования на базе функций
Индекс на базе функций поддерживает пространственные запросы и анализ любых реляционных данных, связанных с позиционным атрибутом, без создания и предварительной загрузки столбца типа SDO_GEOMETRY.
Пользователи могут создавать пространственные индексы по позиционным данным, хранимых в реляционных столбцах (например, в столбцах высоты и широты). Пространственные операторы могут пользоваться как индексами на базе функций, так и традиционными пространственными индексами (spatial index). Пространственный ндекс сделает возможным вызов пространственных операторов на этих реляционных столбцах без необходимости создавать столбец SDO_GEOMETRY.
Это полезно для геобизнес-приложений, у которых есть схема для хранения позиционных данных, но которые не могут ее изменять, чтобы перенести эти позиционные данные в столбец типа SDO_GEOMETRY.
Улучшение производительности
Приложения широкого диапазона, от сервисов, применяющих позиционные данные, до управления GIS-активами и земельными участками, часто должны изменять и запрашивать позиционные данные, что требует высокой производительности. Во исполнение этого требования каждая новая версия Oracle Locator обеспечивает резкий рост производительности.
Oracle Locator в первой версии Oracle Database 10g показал значительные улучшения производительности в сравнении с версией 9.2:
- вставки с индексом R-дерево выполнялись в 5-10 быстрее
- время изменения с индексом R-дерево сократилось на 40% или больше, что особенно полезно для GIS масштаба предприятия и сервисов на базе позиционных данных
- пространственные запросы на определение расстояния и запросы на определение отношений выполняются на 20-40% быстрее
- пространственные запросы соединением (Spatial joins) выполняются в 2-6 раза быстрее
Во второй версии Oracle Database 10g производительность запросов с индексами на базе R-деревьев улучшилась. Другие возможности Oracle Locator могут использоваться для дальнейшего производительности.
Для параллельных запросов с секционированными пространственными индексами (partitioned spatial indexes) производительность масштабируется по числу CPU, используемых для выполнения этого запроса. Построение пространственных индексов на базе R-деревьев параллельным образом может очень резко сократить время создания индекса для очень больших не_точечных (non-point) пространственных наборов данных. Функции агрегирования пространственных данных ускоряют выборку больших наборов объектов из SDO_GEOMETRY. (Замечание. Oracle Locator включает функцию SDO_AGGR_MBR; все остальные пространственные функции агрегирования включены только в опцию Oracle Spatial.)
Расширенные возможности Oracle Locator в Oracle Database 10g
Oracle Database 10g обеспечивает мощную и надежную поддержку для критически важных приложений организации. Эти функции, необходимые для приложений масштаба предприятия, расширяют возможности Oracle по работе с позиционными данными благодаря гибкой Internet-архитектуре развертывания, возможностям работы с объектами и мощным утилитам управления данными, которые обеспечивают целостность данных (data integrity), восстановление данных (data recovery) и безопасность данных (data security). Этот уровень поддержки возможен только в однородной среде Oracle, развернутой на всем предприятии, и не может быть эффективно воспроизведен в гибридном решении, в котором сочетаются внешнее решение на базе позиционных данных с традиционным решением масштаба предприятия, при этом даже не имеет значения то, как тесно эти два компонента интегрированы.
Oracle Locator в полной мере использует увеличенные лимиты на размеры баз данных, высоко производительные утилиты сопровождения сверхбольших баз данных (VLDB), репликацию, менеджер рабочего пространства (управление версиями) (workspace manager (versioning)), более быстрое резервирование и восстановление и секционирование. Только пользователи свойственных для Oracle пространственных типов данных могут в полной мере воспользоваться такими функциями, как секционирование, репликация, построение и запросы параллельных индексов, многоуровневая безопасность, определяемая требованиями пространственных данных или приложений (spatially-driven multi-level security). Эти функции не доступны или функционально ограничены при использовании типов данных LONG RAW или BLOB. Весь диапазон утилит Oracle (в том числе SQL*Loader) также может быть использован, чтобы облегчить миграцию и помочь модернизировать приложения, которые используют функции позиционных сервисов. Некоторые из этих ключевых для приложений масштаба предприятия функций описаны ниже.
Поддержка секционирования для пространственных индексов
Архитектура баз данных Oracle включает секционирование, в рамках которого единая логическая таблица и ее индексы разбиваются на две или более физических таблиц, каждая, возможно, со своим собственным индексом. Пространственные индексы, связанные с секционированной таблицей, также могут быть секционированы; секционирование по диапазону (range partitioning) – это схема секционирования, поддерживаемая для пространственных индексов.
Секционирование обеспечивает значительные улучшения производительности, масштабируемости и управляемости, включая следующее:
- Сокращенное время ответа для длительно исполняемых запросов; секционирование может сократить количество дисковых операций ввода-вывода.
- Сокращенное время ответа для конкурентных запросов; операции ввода-вывода могут исполняться одновременно по каждой секции.
- Более легкое сопровождение индексов из-за наличия операций создания и перестроения на уровне секций.
- Возможность перестраивать индексы на одних секциях, не влияя на запросы к другим секциям.
- Возможность изменять параметры хранения для каждого локального индекса независимо от других секций.
Секции также могут разделяться, объединяться и обмениваться.
Создание параллельного пространственного индекса
Пространственные индексы и секции индексов могут создаваться параллельно. Создание индекса на базе R-дерева может быть разбито на меньшие задачи, которые могут выполняться параллельно с использованием неиспользуемых ресурсов оборудования (CPU).
Для некоторых наборов пространственных данных и типов/параметров индексов параллельное создание индекса может существенно повысить производительность построения индексов и привести к значительной экономии времени. Большие не_точечные (non-point) наборы данных (обычно используемые во многих стандартных GIS-приложениях) могут продемонстрировать значительные улучшения производительности.
Параллельные пространственные запросы (введены в 10g Release 1)
Пространственные запросы могут теперь выполняться параллельно на секционированных пространственных индексах, повышая производительность таких запросов, как “внутри заданного расстояния”, “ближайший сосед” и “относительно”. Производительность масштабируется с числом CPU, используемых для выполнения запроса. Это существенно для позиционных сервисов и приложений управления земельными участками нуждаются в быстром выполнении большого количества пространственных запросов.
Репликация
Возможности расширенной репликации Oracle (Advanced Replication) могут быть использованы с позиционными данными.
Например, распределенные системы, в которые входят географически разнесенные, но логически реплицируемые web-сайты, могут использовать синхронную репликацию объектов пространственных данных по многим базам данных.
Замечание: Конфигурация Advanced Replication со многими мастер-узлами (multimaster replication) предлагается только с базами данных редакции Enterprise Edition. За более подробной информацией о функциях Advanced Replication следует обратиться к руководству Oracle Database Advanced Replication.
Рабочие пространства баз данных
Oracle Workspace Manager, менеджер рабочих пространств баз данных Oracle, - это механизм Oracle, который предоставляет виртуальную среду (workspaces – рабочие пространства), позволяющую управлять в одной и той же базе данных текущими, предполагаемыми и историческими значениями данных.
Рабочие пространства могут совместно использоваться для:
- изоляции ряда изменений производственных данных, пока они не одобрены и не загружены в базу производственных данных;
- ведения долгосрочной истории изменений к данным;
- и создании множества сценариев на основе данных, которые базируются на общем наборе данных для анализа типа “Что если”.
Поддержка функциональности баз данных в Standard/Enterprise Edition
Oracle Locator поставляется в редакциях Oracle Standard Edition, Standard Edition One и Enterprise Edition. Часть его функциональности требует наличия ряда серверных функций, которые недоступны или ограничены в редакциях Standard Edition и Standard
Edition One. Некоторые из этих функций и их доступность перечислены ниже:
Функциональность |
Поддержка 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 последовательно работает над тем, чтобы помочь сформировать, продвинуть, внедрить и поддерживать открытые стандарты в областях пространственных данных и сервисах на основе позиционных данных.
Корпорация 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 точек, линий и полигонов.
Поддержка ведущих поставщиков GIS и сервисов на основе позиционных данных
Oracle Locator напрямую интегрируется с продуктами ведущих разработчиков GIS и сервисов на основе позиционных данных. Широкий спектр поддержки партнеров предоставляет разработчикам возможность выбора наилучшего инструмента, соответствующего их требованиям. С Oracle Database 10g и инструментами партнеров разработчики могут быстро развертывать масштабируемые, безопасные GIS масштаба предприятия и решения на основе позиционных данных.
Список партнеров доступен на www.oracle.com/technology/products/spatial .
Заключение
Oracle Locator обеспечивает основную функциональность для работы с позиционными данными в базе данных Oracle, не требуя при этом дорогих средств других разработчиков. Он поддерживает среды масштаба рабочей группы и предприятия, а также идеально подходит для многих приложений в виде позиционных сервисов, то есть сервисов на основе позиционных данных (location-based services). Этот инструмент позволяет организациям использовать стандартные GIS-средства партнеров для доступа к данным типа SDO_GEOMETRY. Он также позволяет любому бизнесу-приложению включать возможности позиционирования, чтобы раскрыть ценность информации, которой они уже обладают. Oracle Locator поддерживает хранение пространственного объектного типа (spatial object type storage), доступ через SQL, индексирование пространственных данных на базе R-дерева, операции с пространственными данными, хранение и управление геодезическими данными (geodetic data storage and management), модель координатной системы согласно EPSG (coordinate systems model) и так далее.
Oracle принадлежит 80-90% доля рынка управления базами геопространственных данных (IDC, Oracle 10g: Spatial Capabilities for Enterprise Solutions, Sonnen
and Morris, Feb. 2005). Клиенты и партнеры полагаются на то, что Oracle обеспечит производительность, масштабируемость, безопасность и легкость использования для их пространственных приложений. Oracle Locator в Oracle Database 10g развивается в сторону новых уровней производительности и включает богатый набор характеристик, который позволяет любому разработчику использовать Oracle для развертывания GIS, бизнес-приложений на основе позиционных данных, и беспроводных услуг на базе позиционных данных.
Oracle Locator: Location-Enabling Every Oracle Database
August 2005
Authors: Jean Ihm, Xavier Lopez
Contributing Authors: Jim Steiner, Jayant Sharma, Siva Ravada, Dan Abugov
Oracle Corporation
World Headquarters
500 Oracle Parkway
Redwood Shores, CA 94065
U.S.A.
Worldwide Inquiries:
Phone: +1.650.506.7000
Fax: +1.650.506.7200
oracle.com
Copyright © 2005, Oracle. All rights reserved.
This document is provided for information purposes only and the contents hereof are subject to change without notice.
This document is not warranted to be error-free, nor subject to any other warranties or conditions, whether expressed orally or implied in law, including implied warranties and conditions of merchantability or fitness for a particular purpose. We specifically disclaim any liability with respect to this document and no contractual obligations are formed either directly or indirectly by this document. This document may not be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without our prior written permission.
Oracle, JD Edwards, and PeopleSoft are registered trademarks of Oracle Corporation and/or its affiliates. OGC, OpenGIS®, and CERTIFIED OGC COMPLIANT are trademarks or registered trademarks of Open Geospatial Consortium, Inc. in the United States and in other countries. Other names may be trademarks of their respective owners.