Место PostGIS/PostgreSQL среди СУБД с поддержкой пространственных данных
по адресу http://gis-lab.info/qa/postgis-compare.html
Приведено сравнение PostGIS с аналогичными решениями для наиболее популярных СУБД
PostGIS представляет собой расширение свободной объектно-реляционной СУБД PostgreSQL, предназначенное для хранения в базе географических данных (геометрии) и поддерживающее стандарты OGC (Open Geospatial Consortium). PostGIS был выпущен в 2001 году компанией Refractions Research и составляет конкуренцию коммерческим решениям, являясь при этом свободным программным продуктом с открытым исходным кодом. Основным достоинством PostGIS является возможность использования языка SQL совместно с пространственными операторами и функциями. PostGIS довольно активно развивается, по мере развития самой СУБД PostgreSQL и проекта Open Source Geospatial Foundation, вбирая в себя самое лучшее из этих иннициатив. Так, например, развитие PostgreSQL позволило использовать в PostGIS такие нововведения, как битмаповые и GiST индексы. От союза с Open Source Geospatial Foundation, PostGIS досталась поддержка возможностей продуктов GEOS, Proj4 и JTS. В 2001 году позволяло просматривать данные PostGIS одно единственное приложение - MapServer. Сейчас помимо MapServer работать с данными PostGIS умеет большинство картографических приложний, как коммерческих, так и бесплатных. Среди свободного ПО (FOSS, Free and open source software) можно выделить: MapServer, GRASS, uDig, QGIS, GDAL/OGR, FeatureServer, GeoServer, SharpMap, gvSIG.
Пространственные расширения для свободных СУБД
Наряду с PostGIS существуют пространственные расширения и для других свободных СУБД.
PostgreSQL/PostGIS
http://postgis.refractions.net/
PostgreSQL - самая продвинутая свободная СУБД в мире, иногда не очень дружественная к пользователю (могут возникнуть проблемы при установке и первичной настройке), но в то же время являющаяся полнофункциональной ACID СУБД. Её расширение PostGIS предоставляет полный набор пространственных возможностей (соответствующих OGC) и позволяет осуществлять любые виды операций над геоданными. Если вам действительно нужна полнофункциональная система с поддержкой пространственных данных и вас не пугает администрирование очень сложной, но при этом очень мощной СУБД, то ваш выбор – это PostgreSQL+PostGIS.
'MySQL/'Spatial
http://dev.mysql.com/doc/refman/6.0/en/spatial-extensions.html
MySQL - легкая в использовании, очень быстрая, относительно простая в управлении СУБД- не удивительно, что она стала очень популярной среди Web разработчиков. Часто критикуется за не полную поддержку стандартов SQL. MySQL Spatial позволяет очень эффективно управлять пространственными данными; к сожалению, возможность создания пространственных индексов достигается лишь путем использования таблиц MyISAM, не поддерживающих ни транзакции, ни ACID. Можно работать с пространственными данными через таблицы InnoDB, обладающие полной поддержкой ACID, но в таком случае исчезает возможность использования пространственных индексов. Функции пространственного отношения в MySQL реализованы преимущественно для минимальных ограничивающих прямоугольников (MBR, minimal bounding rectangles), что это за прямоугольники и каково их предназначение мы уже рассматривали в одной из предыдущих [postgis-work.html#05 статей]. Даже в последней версии MySQL 6.0 отсутствует большое количество OGC функций, таких как Intersection и Buffering. Таким образом, если вы ищете пространственную базу данных для публикации геоданных в Web и отсутствие поддержки ACID и большинства фунций OGC не является для вас препятствием, то ваш выбор – это MySQL Spatial.
SQLite/SpatiaLite
SpatiaLite представляет собой расширение встраиваемого движка баз данных SQLite, позволяющее загружать, хранить и управлять пространственными данными в этой СУБД. SpatiaLite поддерживает пространственные индексы, основанные на R-деревьях, при использовании SQLite версии 3.6.0 и выше. Стоит отметить, что и в SpatiaLite реализована лишь часть той функциональности, которая предлагается OGC. Однако и этих возможностей во многих случаях бывает достаточно. К достоинствам SQLite + SpatiaLite можно отнести:
- очень простая процедура установки
- нет потребности в администраторе баз данных
- низкие системные требования
- простота использования
Если вы ищите простую в обслуживании пространственную СУБД без излишеств и сложностей для управления небольшим объемом геоданных, то, возможно, ваше решение - это SQLite и SpatiaLite.
Oracle Spatial, DB2 Spatial Extender, Informix Spatial Blade
http://www.oracle.com/technology/products/spatial/index.html
http://www-01.ibm.com/software/data/spatial/
Сравнивая PostGIS с аналогичными коммерческими решениями, можно сделать вывод о том, что в PostGIS реализовано значительно больше функций, чем в коммерческих продуктах, таких как, например, Oracle Spatial, DB2 Spatial Extender, Informix Spatial Blade. По производительности PostGIS немного уступает, однако к основным, недостаткам PostGIS можно отнести отсутствие дополнительных модулей, присутствующих в коммерческих продуктах. Примером такого модуля является например Oracle Spatial network topology model. Отметим так же, что часто бывает так, что стоимость всех дополнительных модулей коммерческого продукта значительно превосходит стоимость самой СУБД. Многие могут поспорить с этим, приводя в качестве аргумента, например, то что Oracle предоставляет покупателю расширение Locator бесплатно в стандартной и XE версиях своей СУБД Oracle Database, однако, как следует из документации, в Oracle Locator отсутствует большинство основных пространственных функций, таких как Centroid, Buffering и Intersection. В случае, если вы захотите воспользоваться полной функциональностью пространственной СУБД, вам необходимо будет приобрести расширение Oracle Spatial и СУБД Oracle Enterprise, обладающие заоблачной стоимостью.
MS SQL Server 2008
http://www.microsoft.com/sqlserver/2008/en/us/spatial-data.aspx
Еще одна коммерческая СУБД – MS SQL Server 2008. Здесь также реализована поддержка пространственных данных. SQL Server 2008 обладает одним очень важным инструментом, отсутствующим в PostGIS – это геодезическая поддержка (Geodetic support). Отметим, что в ближайшем будущем планируется включение и в PostGIS геодезической поддержки, а также инструментов сетевой топологии средствами PgRouting. Препятствием на пути использования SQL Server может стать невозможность его использования на других ОС, отличных от Windows. Однако по соотношению цена/качество именно SQL Server 2008 из всех коммерческих продуктов наиболее близок к PostGIS. Существующие бесплатные Express версии коммерческих решений имеют множество ограничений, среди которых основными являются ограниченный размера базы данных и невозможность работы на компьютере с более чем одним процессором. Для многих подобные ограничения не приемлемы, как и стоимость полноценных коммерческих продуктов.
ArcSDE
http://www.esri.com/software/arcgis/arcsde/
Стоит упомянуть еще одно пространственное расширение - это ArcSDE. ArcSDE (SDE – Spatial Database Engine) представляет собой серверное программное обеспечение для организации хранения и управления пространственными данными в СУБД. ArcSDE позволяет управлять географической информацией, хранящейся в таких коммерческих СУБД как Oracle , Microsoft SQL Server , IBM DB 2 и IBM Informix , начиная с 9.3 – PostgreSQL. Как и PostGIS, ArcSDE полностью совместим со стандартами OGC, однако минимальная стоимость ArcSDE составляет порядка $15,000.
Сравнение доступных пространственных СУБД
Приведем несколько более детальное сравнение наиболее доступных пространственных СУБД.
Итак, мы выяснили, что по соотношению цена/функциональность лидерами среди всех пространственных баз данных являются SQL Server 2008 и PostgreSQL/PostGIS. Отметим, что пространственные возможности и скорость обработки геоданных в MySQL Spatial значительно уступает соответствующим показателям вышеназванных систем, однако мы включим эту СУБД в рассмотрение, поскольку она обладает огромным количеством инсталляций по всему миру и если данная СУБД выполняет все необходимые пространственные операции и делает это на достаточной скорости, то отказываться от ее использования нет смысла.
Пространственные СУБД, лидирующие по соотношению цена/функциональность
|
|
|
|
---|---|---|---|
ОС |
Windows XP, Windows Vista, Windows 2003, Windows 2008 |
Windows XP, Windows Vista, (не тестировалась на Windows 2008), Linux, Unix, Mac |
Windows 2000+ (включая Vista и 2003, не тестировалась на Windows 2008), Linux, Unix, Mac |
Лицензия | Коммерческая, закрытый исходный код. Каждая версия имеет определенную функциональность. Версия Express обладает полной поддержкой пространственных возможностей, но ограничена размером базы данных и количеством процессоров в системе (один) |
Коммерческая , открытый исходный код (COSS), некоторые составляющие распространяются под лицензией GPL |
FLOSS (PostgreSQL распространяется под лицензией BSD, PostGIS под GPL) |
Свободные загрузчики геоданных |
Загрузчик данных shp для SQL Server 2008, не работает в версии RC0 |
OGR2OGR, shp2mysql.pl |
shp2pgsql, OGR2OGR, QuantumGIS SPIT, загрузчик shp для PostGIS, использующий SharpMap.NET и другие |
Проприетарные загрузчики геоданных | Manifold, Safe FME Objects, ESRI ArcGIS 9.3 (последний сервис пак) | Safe FME Objects | Manifold, FME Objects, ESRI ArcGIS 9.3 |
Драйверы приложений, реализующие пространственную функциональность | ? Пока отсутствуют – в конечном счете SharpMap.NET, вероятно встроенный в ADO.NET 3.5+ | GDAL C++, SharpMap через OGR, AutoCAD FDO | SharpMap.Net, JDBC postgis.jar, JTS, GDAL C++, AutoCAD FDO beta |
Свободные ORM |
NHibernateSpatial и HibernateSpatial | ||
Бесплатные просмотрщики и редакторы | Будет встроен в SQL Manager, но пока не доступен в RC0 | gvSIG | OpenJump, QuantumGIS, gvSIG, uDig |
Проприетарные просмотрщики и редакторы | ESRI ArcGIS 9.3 Server SDE в последних сервис паках, Manifold, FME | FME | ESRI ArcGIS 9.3 Server, ZigGIS для десктопов, Manifold, FME |
Картографические Web инструменты | Manifold, MapDotNet, ArcGIS 9.3 (в последних сервис паках), UMN MapServer, MapGuide Open Source (используется бета-драйвер FDO) | UMN MapServer, GeoServer, MapGuide Open Source | Manifold, MapDotNet, ArcGIS 9.3, UMN MapServer, GeoServer, FeatureServer, MapGuide Open Source (используется бета-драйвер FDO) |
Функции для работы с геоданными | OGC SFSQL MM и геодезические функции (свыше 70) | OGC, большинство только для MBR (bounding box functions), несколько реальных функций пространственного отношения, только 2D | Свыше 300 функций и операторов, геодезические функции отсутствуют, за исключением point-2-point неиндексируемых функций расстояния, 2D, отчасти 3D |
Пространственные индексы | Основанные на B-деревьях | R-деревья, доступны только для таблиц MyISAM | GIST - вариант R-дерева |
Геодезия – поддержка вычислений в сферических координатах | Да | Нет | Нет |
Виртуальный хостинг | Множество | Множество |
Много меньше. Список PostGIS хостеров можно найти здесь |
Таким образом, подводя итог всему вышесказанному, можно сделать вывод о том, что на сегодняшний день PostGIS является достойной альтернативой большинству коммерческих продуктов, предоставляя широкий спектр инструментов для работы с пространственными данными, а по соотношению цена/функциональность и вовсе является неоспоримым мировым лидером.