Что такое Oracle Spatial?
Oracle Spatial – это дополнительный модуль в СУБД Oracle, который добавляет пространственный тип и функции пространственных запросов в среду Oracle. Он предоставляется компанией Oracle в виде двух основных опций.
- Oracle Spatial – это дополнительный компонент Oracle Database Enterprise Edition. Кроме предоставления типа SDO_Geometry, Oracle Spatial предоставляет ряд дополнительных геопространственных возможностей.
- Oracle Locator поддерживает поднабор возможностей Oracle Spatial. Он включается как стандартный компонент Oracle Database в версиях Standard и Enterprise. Помимо прочих возможностей, в нем содержится тип геометрии Oracle Spatial (который называется SDO_Geometry) и интерфейс SQL API, предназначенный для этого содержимого.
Oracle Spatial использует те же функциональные возможности, что и многие географические информационные системы, включая ArcGIS. Основным способом применения Oracle Spatial большинством пользователей ArcGIS является использование дополнительного механизма хранилища базы геоданных и получения к нему доступа через СУБД Oracle. В целом, один из доступных для пользователей выборов при создании нового класса объектов или растрового набора данных в базе геоданных Oracle, является способ хранения геометрии объектов или растров: можно использовать базу геоданных или опции хранения данных Oracle Spatial.
ArcGIS поддерживает реляционную модель объектов Oracle Spatial Object Relational Model в качестве дополнительного метода хранения пространственных данных. В частности, геометрия Oracle Spatial или Oracle Locator может использоваться для хранения содержания объектов и растровых наборов данных в многопользовательских базах геоданных с возможностью управления этими данными.
Обзор хранения данных в Oracle Spatial
Oracle Spatial предоставляет тип пространственной геометрии (MDSYS.SDO_GEOMETRY), схему пространственных метаданных, методы индексации, функции и правила реализации, описанные ниже.
![Примечание Примечание](rsrc/note.png)
Oracle Locator является частью Oracle Spatial. Oracle Locator включает тип данных SDO_GEOMETRY вместе с некоторыми функциональными возможностями, предоставляемыми Oracle Spatial. Oracle Locator может использоваться вместе с ArcGIS. Для получения информации о различиях между Oracle Spatial и Oracle Locator см. документацию Oracle. В этом разделе, Oracle Locator и Oracle Spatial являются взаимозаменяемыми терминами.
-
SDO_GEOMETRY
Тип геометрии Oracle Spatial SDO_GEOMETRY реализован с помощью системы расширяемых типов реляционных объектов Oracle. Тип SDO_GEOMETRY сохраняет сведения о геометрии, включая тип геометрии, ID пространственной привязки, тип интерполяции (прямая или с изгибами) и значений координат. Тип SDO_GEOMETRY в многопользовательских базах геоданных поддерживает отдельные и множественные точки, линии и площадные объекты. Геометрии можно описать как наличие линейной интерполяции между координатами по определению, данному в спецификации OpenGIS Simple Feature Specification. Геометрии могут также создаваться на основе круговых изгибов или комбинации обоих методов интерполяции. Программы приложений должны правильно вставлять, обновлять и получать содержимое типа SDO_GEOMETRY с помощью SQL-интерфейса реляционных объектов Oracle. Приложения также отвечают за то, чтобы содержимое каждой геометрии соответствовало правилам, определенным в документации по Oracle Spatial. Oracle предоставляет процедуры регулярной проверки геометрии, которые могут выполняться после добавления геометрии. Кроме того, начиная с Oracle версии 11.1.0.7, геометрия проверяется при добавлении индекса.
Примечание:
Процедуры регулярной проверки геометрии в Oracle не реализуют в точности тот же набор правил, что проверка геометрии ArcGIS. Однако, ArcGIS предназначен для записи геометрии SDO_GEOMETRY, которая удовлетворяет правилам проверки Oracle.
-
Схема метаданных
Информация о каждом столбце SDO_GEOMETRY должна быть записана в схеме метаданных Oracle Spatial несмотря на то, что Oracle Spatial не делает этого автоматически. (Схема метаданных Oracle Spatial предоставляется в каждой схеме в представлении USER_SDO_GEOM_METADATA.) Программное обеспечение, которое создает столбцы SDO_GEOMETRY, должно добавлять в них метаданные. ArcGIS делает это для любых создаваемых классов объектов SDO_GEOMETRY. Метаданные содержат имя пространственного столбца, имя таблицы, в котором он находится, а также идентификатор Oracle Spatial Reference Identifier (SRID), число размеров, диапазон каждого размера и соответствующий координатный допуск.
-
Пространственные индексы
Пространственные индексы предоставляют быстрый доступ к объектам на основе местоположения их геометрии. Для SDO_GEOMETRY, пространственные индексы R-tree часто являются самым эффективными и простыми в создании, поэтому в большинстве случаев компания Oracle рекомендует пользоваться именно этими индексами. Oracle Spatial предоставляет средство Spatial Index Advisor, которое позволяет определить лучший тип пространственного индекса для данной таблицы. Кроме того, обратитесь к руководству пользователя и справке по Oracle Spatial для получения подробных сведений о поддерживаемых типах пространственных индексов, способов их создания и преимуществах различных методов пространственной индексации.
-
Пространственные функции
Oracle Spatial расширяет возможности SQL благодаря функциям пространственного поиска для первичной и вторичной фильтрации. Включение функции SDO_FILTER в SQL-запрос приводит к первичному пространственному поиску с использованием пространственного индекса. Пространственные предикаты, такие как SDO_RELATE и SDO_CONTAINS, возвращают вторичные отношения между парами объектов SDO_GEOMETRY. Oracle Spatial предоставляет функции пространственного преобразования, которые меняют форму для значения SDO_GEOMETRY. Например, функция SDO_BUFFER вычисляет координаты нового объекта SDO_GEOMETRY в виде буферного полигона на определенном расстоянии вокруг исходной геометрии. Другие функции пространственного преобразования включают SDO_DIFFERENCE и SDO_INTERSECTION.
-
Привязка координат и SRID
Oracle Spatial предоставляет доступ к ряду предварительно определенных базовых систем координат с использованием значения SRID. Значение SRID, хранящееся в объекте SDO_GEOMETRY, определяет привязку координат для геометрии, хранящейся в этом объекте. Если значение было указано (не NULL), идентификатор SRID объекта SDO_GEOMETRY является внешним ключом для таблицы, содержащей сведения о каждом идентификаторе SRID. Это таблица MDSYS.CS_SRS. Функция SDO_TRANSFORM использует идентификатор пространственной привязки для организации преобразования базовых координат. ArcGIS также использует эту информацию для создания пространственных привязок.