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

База данных оптимизирована для данных, представляющих объекты в геометрическом пространстве

Пространственная база данных — это база данных общего назначения (обычно реляционная база данных ), которая была расширена за счет включения пространственных данных , представляющих объекты, определенные в геометрическом пространстве , а также инструментов для запроса и анализа таких данных.

Большинство пространственных баз данных позволяют представлять простые геометрические объекты, такие как точки , линии и многоугольники . Некоторые пространственные базы данных обрабатывают более сложные структуры, такие как 3D-объекты , топологические покрытия , линейные сети и триангулированные нерегулярные сети (TIN). Хотя типичные базы данных были разработаны для управления различными числовыми и символьными типами данных , таким базам данных требуется дополнительная функциональность для эффективной обработки пространственных типов данных, и разработчики часто добавляли геометрические или характерные типы данных.

Географическая база данных (или база геоданных ) — это геопривязанная пространственная база данных, используемая для хранения и обработки географических данных (или геоданных, т. е. данных, связанных с местоположением на Земле), [a] особенно в географических информационных системах (ГИС). Почти все современные реляционные и объектно-реляционные системы управления базами данных теперь имеют пространственные расширения, а некоторые поставщики программного обеспечения ГИС разработали собственные пространственные расширения для систем управления базами данных.

Открытый геопространственный консорциум (OGC) разработал спецификацию Simple Features (впервые выпущенную в 1997 году) [1] и устанавливает стандарты для добавления пространственной функциональности в системы баз данных. [2] Стандарт SQL/MM Spatial ISO/IEC является частью языка структурированных запросов и стандарта мультимедиа, расширяющего Simple Features. [3]

Характеристики

Основная функциональность, добавляемая пространственным расширением к базе данных, — это один или несколько пространственных типов данных , которые позволяют хранить пространственные данные в виде значений атрибутов в таблице. [4] Чаще всего одно пространственное значение будет геометрическим примитивом (точкой, линией, полигоном и т. д.), основанным на векторной модели данных . Типы данных в большинстве пространственных баз данных основаны на спецификации OGC Simple Features для представления геометрических примитивов. Некоторые пространственные базы данных также поддерживают хранение растровых данных . Поскольку все географические местоположения должны быть указаны в соответствии с пространственной системой отсчета , пространственные базы данных также должны позволять отслеживать и преобразовывать системы координат. Во многих системах, когда пространственный столбец определяется в таблице, он также включает выбор системы координат, выбранной из списка доступных систем, который хранится в таблице поиска.

Второе важное расширение функциональности в пространственной базе данных — это добавление пространственных возможностей к языку запросов (например, SQL ); они дают пространственной базе данных те же операции запросов, анализа и манипуляций , которые доступны в традиционном программном обеспечении ГИС. В большинстве систем управления реляционными базами данных эта функциональность реализована как набор новых функций, которые можно использовать в операторах SQL SELECT. Несколько типов операций определены стандартом Open Geospatial Consortium :

  • Измерение: вычисляет длину линии, площадь многоугольника, расстояние между геометриями и т. д.
  • Геообработка: изменение существующих объектов для создания новых, например, путем создания буфера вокруг них, пересечения объектов и т. д.
  • Предикаты: Позволяет делать запросы типа «истина/ложь» о пространственных отношениях между геометриями. Примеры включают «перекрываются ли два полигона?» или «есть ли жилой дом в пределах мили от района, где мы планируем построить свалку?» (см. DE-9IM )
  • Конструкторы геометрии: создают новые геометрии, обычно путем указания вершин (точек или узлов), определяющих форму.
  • Функции наблюдателя: запросы, возвращающие конкретную информацию об объекте, например, местоположение центра круга.

Некоторые базы данных поддерживают только упрощенные или измененные наборы этих операций, особенно в случае систем NoSQL, таких как MongoDB и CouchDB .

Пространственный индекс

Пространственный индекс используется пространственной базой данных для оптимизации пространственных запросов . Системы баз данных используют индексы для быстрого поиска значений путем сортировки значений данных в линейном (например, алфавитном) порядке; однако этот способ индексации данных не является оптимальным для пространственных запросов в двух- или трехмерном пространстве. Вместо этого пространственные базы данных используют пространственный индекс, разработанный специально для многомерного упорядочения. [5] Распространенные методы пространственного индекса включают:

Пространственный запрос

Пространственный запрос — это особый тип запроса к базе данных , поддерживаемый пространственными базами данных, включая базы геоданных. Запросы отличаются от непространственных SQL- запросов несколькими важными способами. Два самых важных из них заключаются в том, что они позволяют использовать типы геометрических данных, такие как точки, линии и полигоны, и что эти запросы учитывают пространственные отношения между этими геометриями.

Названия функций для запросов различаются в разных базах геоданных. Ниже приведены некоторые функции, встроенные в PostGIS , бесплатную базу геоданных, которая является расширением PostgreSQL (термин «геометрия» относится к точке, линии, ящику или другой двух- или трехмерной форме): [7]

Прототип функции: functionName (параметр(ы)) : возвращаемый тип

  • ST_Distance(геометрия, геометрия) : число
  • ST_Equals(геометрия, геометрия) : логическое значение
  • ST_Disjoint(геометрия, геометрия) : логическое значение
  • ST_Intersects(геометрия, геометрия) : логическое значение
  • ST_Touches(геометрия, геометрия) : логическое значение
  • ST_Crosses(геометрия, геометрия) : логическое значение
  • ST_Overlaps(геометрия, геометрия) : логическое значение
  • ST_Contains(геометрия, геометрия) : логическое значение
  • ST_Length(геометрия) : число
  • ST_Area(геометрия) : число
  • ST_ Центроид (геометрия) : геометрия
  • ST_Intersection(геометрия, геометрия) : геометрия

Таким образом, пространственное соединение между точечным слоем городов и полигональным слоем стран может быть выполнено в пространственно-расширенном операторе SQL следующим образом:

SELECT * FROM cities, countries WHERE ST_Contains(countries.shape, cities.shape)

Операция наложения векторов Intersect (основной элемент программного обеспечения ГИС) может быть воспроизведена следующим образом:

SELECT ST_Intersection(veg.shape, soil.shape) int_poly, veg.*, soil.* FROM veg, soil where ST_Intersects(veg.shape, soil.shape)

Системы управления пространственными базами данных

Список

  • AllegroGraphграфовая база данных , которая обеспечивает механизм эффективного хранения и извлечения двумерных геопространственных координат для данных Resource Description Framework . [ необходима ссылка ] Включает синтаксис расширения для запросов SPARQL .
  • ArangoDB — многомодельная база данных, обеспечивающая возможность геоиндексирования.
  • Apache Drill — MPP SQL-движок запросов для больших наборов данных. Drill поддерживает пространственные типы данных и функции [8], аналогичные PostgreSQL.
  • Esri Geodatabase (Enterprise, Mobile) — фирменная пространственная структура базы данных и логическая модель, которая может быть реализована в нескольких реляционных базах данных, как коммерческих (Oracle, MS SQL Server, Db2), так и с открытым исходным кодом (PostgreSQL, SQLite)
  • Caliper расширяет Raima Data Manager пространственными типами данных, функциями и утилитами.
  • CouchDB — система баз данных на основе документов, которая может быть пространственно активирована с помощью плагина Geocouch
  • Elasticsearch — это система баз данных на основе документов, которая поддерживает два типа геоданных: поля geo_point, которые поддерживают пары широта/долгота, и поля geo_shape, которые поддерживают точки, линии, окружности, многоугольники, мульти-полигоны и т. д. [9]
  • GeoMesa — это облачная пространственно-временная база данных, созданная на основе Apache Accumulo и Apache Hadoop (также поддерживает Apache HBase , Google Bigtable , Apache Cassandra и Apache Kafka ). GeoMesa поддерживает все функции OGC Simple и плагин GeoServer.
  • H2 поддерживает типы геометрии [10] и пространственные индексы [11] с версии 1.3.173 (2013-07-28). Расширение H2GIS, доступное на Maven Central, обеспечивает полную поддержку простых функций OGC .
  • Любая версия IBM Db2 может быть пространственно адаптирована для реализации пространственной функциональности OpenGIS с пространственными типами и функциями SQL.
  • Расширения IBM Informix Geodetic и Spatial datablade автоматически устанавливаются при использовании и расширяют типы данных Informix, включая несколько стандартных систем координат и поддержку индексов RTree. Геодезические и пространственные данные также могут быть объединены с поддержкой данных Informix Timeseries для отслеживания объектов, движущихся с течением времени.
  • ЛИНТЕР SQL Server поддерживает пространственные типы и пространственные функции в соответствии со спецификациями OpenGIS.
  • Microsoft SQL Server поддерживает пространственные типы с версии 2008.
  • Расширение MonetDB/GIS для MonetDB добавляет простые функции OGS в реляционную базу данных с колоночным хранилищем . [12]
  • СУБД MySQL реализует тип данных geometry , а также некоторые пространственные функции, реализованные в соответствии со спецификациями OpenGIS. [13] Однако в MySQL версии 5.5 и более ранних версиях функции, проверяющие пространственные отношения, ограничены работой с минимальными ограничивающими прямоугольниками, а не с фактической геометрией. Версии MySQL до 5.0.16 поддерживали только пространственные данные в таблицах MyISAM. Начиная с MySQL 5.0.16, InnoDB, NDB, BDB и ARCHIVE также поддерживают пространственные функции.
  • Neo4jграфовая база данных , которая может строить 1D и 2D индексы в виде B-дерева , квадродерева и кривой Гильберта непосредственно в графе.
  • OpenLink Virtuoso поддерживает SQL/MM с версии 6.01.3126 [14] со значительными улучшениями, включая GeoSPARQL в Open Source Edition 7.2.6 и в Enterprise Edition 8.2.0 [15]
  • Oracle Пространственный
  • СУБД PostgreSQL (система управления базами данных) использует расширение PostGIS для реализации пространственных функций, совместимых с OGC [16] , включая стандартизированную геометрию типов данных и соответствующие функции.
  • Redis с Geo API. [17]
  • RethinkDB поддерживает геопространственные индексы в 2D.
  • SAP HANA поддерживает геопространственные данные с SPS08. [18]
  • Smallworld VMDS , собственная база данных GE Smallworld GIS
  • SpaceTime — это коммерческая пространственно-временная база данных, созданная на основе фирменного многомерного индекса, похожего на семейство деревьев k -d , но созданная с использованием подхода «снизу вверх» и адаптированная к конкретному пространственно-временному распределению данных.
  • Spatial Query Server от Boeing обеспечивает пространственную поддержку Sybase ASE.
  • SpatiaLite расширяет Sqlite пространственными типами данных, функциями и утилитами.
  • Tarantool поддерживает геопространственные запросы с индексом RTREE. [19]
  • Система хранения данных Teradata Geospatial включает в себя функциональные возможности 2D-пространственной обработки (соответствующие OGC).
  • Vertica Place , геопространственное расширение для HP Vertica , добавляет пространственные функции, совместимые с OGC, в реляционную базу данных с колоночным хранилищем . [20]

Таблица бесплатных систем специально для обработки пространственных данных

ДБСЛицензияРаспределенныйПространственные объектыПространственные функцииИнтерфейс PostgreSQLИнтерфейс UMN MapServerДокументацияИзменяемыйHDFS
Apache DrillЛицензия Apache 2.0дадада - Документация по геопространственным функциям DrillданетОфициальная документацияANSI- SQL-кодда
ArangoDBЛицензия Apache 2.0дадада - обзор возможностей функции языка запросовнетнетофициальная документацияДУКнет
GeoMesaЛицензия Apache 2.0дада ( Простые функции )да ( СТС )нет (изготавливается с помощью GeoTools )нетчасти функций, несколько примеровс помощью Simple Feature Access в виртуальной машине Java и Apache Spark можно решать любые виды задачда
H2 (H2GIS)LGPL 3 (начиная с версии 1.3), GPL 3 ранеенетда (пользовательский, без растра)Простой доступ к функциям и пользовательские функции для H2Networkданетда (домашняя страница)SQLнет
ЭнгрGPL или частная собственностьда (если установлено расширение)да (пользовательский, без растра)Геометрический движок с открытым исходным кодом [21]нетс MapScriptтолько краткос C и OMEнет
Neo4J -пространственный [22]GNU affero общедоступная лицензиянетда ( Простые функции )да (содержать, покрывать, покрытый, пересекать, не пересекаться, пересекать окно, перекрывать, касаться, в пределах и в пределах расстояния)нетнеттолько краткофорк JTSнет
PostgreSQL с PostGISСтандартная общественная лицензия GNUнетда ( простые функции и растр)да ( простой доступ к функциям и растровые функции)дадаподробныйSQL, в связи с Rнет
Postgres-XL с PostGISПубличная лицензия Mozilla и универсальная общественная лицензия GNUдада ( простые функции и растр)да ( простой доступ к функциям и растровые функции)дадаPostGIS: да, Postgres-XL: краткоSQL в сочетании с R или Tcl или Pythonнет
Расдамансерверная GPL , клиентская LGPL , корпоративная частная лицензиядапросто растрОбработка растров с помощью rasqlдас помощью службы веб-покрытия или службы веб-обработкиподробная викисобственная определенная функция в корпоративной версиинет
ПереосмыслитьDBАГПЛдада
  • расстояние
  • получитьПересекающийся
  • получитьБлижайший
  • включает в себя
  • пересекает
нетнетофициальная документация [23]разветвлениенет

Смотрите также

Примечания

  1. ^ Термин «база геоданных» может также относиться конкретно к набору фирменных форматов пространственных баз данных, Geodatabase (Esri) .

Ссылки

  1. ^ McKee, Lance (2016). "OGC History (detailed)". OGC . Получено 2016-07-12 . [...] 1997 [...] OGC выпустила спецификацию простых объектов OpenGIS, которая определяет интерфейс, позволяющий различным системам взаимодействовать в терминах «простых объектов», основанных на 2D-геометрии. Поддерживаемые типы геометрии включают точки, линии, линейные линии, кривые и полигоны. Каждый геометрический объект связан с пространственной системой отсчета, которая описывает координатное пространство, в котором определен геометрический объект.
  2. ^ Домашняя страница OGC
  3. ^ Крессе, Вольфганг; Данко, Дэвид М., ред. (2010). Справочник Springer по географической информации (1-е изд.). Берлин: Шпрингер. стр. 82–83. ISBN 9783540726807.
  4. ^ Юэ, П.; Тан, З. "DM-03 - Реляционные СУБД и их пространственные расширения". Свод знаний GIS&T . UCGIS . Получено 5 января 2023 г.
  5. ^ Чжан, С.; Ду, З. "DM-66 Spatial Indexing". GIS&T Body of Knowledge . UCGIS . Получено 5 января 2023 г.
  6. ^ Гютинг, Ральф Хартмут; Шнайдер, Маркус (2005). Базы данных движущихся объектов . Морган Кауфманн. п. 262. ИСБН 9780120887996.
  7. ^ "Справочник функций PostGIS". Руководство PostGIS . OSGeo . Получено 4 января 2023 г.
  8. ^ [1] Документация по геопространственной функции Drill
  9. ^ «Гео-запросы | Руководство по Elasticsearch [7.15] | Elastic».
  10. ^ Документация по типу геометрии H2
  11. ^ H2 создать документацию пространственного индекса
  12. ^ "GeoSpatial – MonetDB". 4 марта 2014 г.
  13. ^ "MySQL 5.5 Reference Manual - 12.17.1. Introduction to MySQL Spatial Support". Архивировано из оригинала 2013-04-30 . Получено 2013-05-01 .
  14. ^ OpenLink Software. "9.34. Типы геометрических данных и поддержка пространственного индекса" . Получено 24 октября 2018 г.
  15. ^ OpenLink Software (2018-10-23). ​​"Новые выпуски Virtuoso Enterprise и Open Source Editions" . Получено 24 октября 2018 г.
  16. ^ "OGC сертифицированный PostGIS".
  17. ^ «Справочник команд – Redis».
  18. ^ «Портал справки SAP» (PDF) .
  19. ^ "RTREE". tarantool.org . Архивировано из оригинала 2014-12-13.
  20. ^ "HP Vertica Place". 2 декабря 2015 г.
  21. ^ "ГЕОС".
  22. ^ "Neo4j Spatial — это библиотека утилит для Neo4j, которая облегчает выполнение пространственных операций с данными. В частности, вы можете добавлять пространственные индексы к уже расположенным данным и выполнять пространственные операции". GitHub . 2019-02-18.
  23. ^ «Справочник команд ReQL — RethinkDB».

Дальнейшее чтение

  • Пространственные базы данных: тур, Шаши Шекхар и Санджай Чавла, Prentice Hall, 2003 ( ISBN 0-13-017480-7 ) 
  • Пространственные базы данных – с применением в ГИС Филипп Риго, Мишель Шолль и Агнес Вуасар. Издательство Morgan Kaufmann . 2002 ( ISBN 1-55860-588-6 ) 
  • Оценка систем управления данными для больших геопространственных данных Пурия Амириан, Анахид Басири и Адам Уинстенли. Спрингер. 2014 ( ISBN 9783319091563 ) 
  • Введение в PostgreSQL PostGIS
  • PostgreSQL PostGIS как компоненты в сервисно-ориентированной архитектуре SOA
  • Схема охранной сигнализации на основе триггера для движущихся объектов на дорожных сетях Саджимон Абрахам, П. Соджан Лал, Опубликовано Springer Berlin / Heidelberg-2008.
  • база геоданных ArcGIS Resource Center описание базы геоданных
Получено с "https://en.wikipedia.org/w/index.php?title=База_пространственных_данных&oldid=1228985967#Пространственный_индекс"