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