Материал из РУВИКИ — свободной энциклопедии

Пространственная база данных

Пространственная база данных — база данных, оптимизированная для хранения и выполнения запросов к данным о пространственных объектах, представленных некоторыми абстракциями: точка, линия, многоугольник и им подобных.

В то время, как традиционные базы данных предназначены для хранения и обработки числовой и символьной информации, пространственные обладают возможностями работы с целостными пространственными объектами, объединяющими как традиционные виды данных (описательная часть или атрибутивная), так и геометрические (данные о положении объекта в пространстве). СУБД, поддерживающие работу с пространственными базами, позволяют выполнять аналитические запросы, содержащие пространственные операторы для анализа пространственно-логических отношений объектов («пересекается…», «касается…», «содержится в…», «содержит…», «находится на заданном расстоянии от…», «совпадает…» и другие)[1].

Консорциум OGC, координирующий разработку международных стандартов в области геоинформационных систем, разработал и утвердил спецификацию на представление базовых типов пространственных объектов (англ. simple features) и установил стандарты на дополнительную функциональность систем управления базами данных для работы с пространственными данными.

Доступ к пространственным данным[править | править код]

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

  • пространственные замеры (spatial measurements): поиск расстояний между точками, многоугольниками и так далее;
  • пространственные функции (spatial functions): модификация существующих объектов (features) для создания новых (например, построение буферных зон вокруг объекта, пересечение объектов и так далее);
  • пространственные предикаты (spatial predicates): ответы на вопросы типа «находится ли какое-либо учреждение образования на расстоянии 300 м от предполагаемого места строительства пивного бара?»;
  • функции построения (англ. constructor functions): создание новых объектов с помощью SQL-запросов, посредством указания вершин (положения узлов, точек) линий; если первая вершина совпадает по координатам с последней, то объект может стать и многоугольником, имеющим замкнутую границу;
  • функции аналитических вычислений (observer functions): запросы, которые возвращают специфическую информацию об объектах, например, координаты центра окружности.

Различные СУБД поддерживают различные подмножества подобных возможностей.

СУБД[править | править код]

Большинство распространённых коммерческих СУБД поддерживают работу с пространственными данными, в частности, в Oracle Database с конца 1990-х годов реализована опция Spatial, в MS SQL Server реализованы пространственные типы данных с версии 2008 года, в SAP Hana существует расширение Spatial. MySQL поддерживает тип данных geometry и некоторые пространственные функции сверх спецификации OGC (функции, которые анализируют пространственные отношения объектов ограничены работой с описанным вокруг объекта прямоугольником, нежели с реальной геометрической информацией).

Существует ряд специальных расширений для СУБД, изначально не поддерживающих пространственные типы данных, таковы, например, Spatial Query Server от корпорации Boeing, превращающий Adaptive Server Enterprise в систему управления пространственными базами данных, и расширение PostGIS, которое снабжает возможностями работы с пространственными базами СУБД PostgreSQL. Среди NoSQL-систем поддержка работы с пространственными данных реализована в MongoDB и RethinkDB, существуют георасширения для Cassandra, также возможностями запросов к пространственным данных оснащены некоторые системы полнотекстового поиска, такие как Elasticsearch.

Примечания[править | править код]

  1. Шекхар Шаши, Чаула Санжей. Основы пространственных баз данных. — Москва: Кудиц-образ, 2004. — 336 с. — 3000 экз. — ISBN 0-13-017480-7, 5-93378-091-Х.

Ссылки[править | править код]