数据库管理系统¶
要求¶
选定的空间对象关系数据库管理系统是 PostgreSQL 9.2+带 PostGIS 2 +。
理论基础¶
数据库管理系统必须符合 约束条件 设置许可证兼容性、可移植性和购置成本。
符合ANSI-SQL:2008 [ISO.IEC_9075:2008] 是基本的技术互操作性需求。
在葡萄牙,这也是根据国家数字互操作性法规(开放标准)制定的公共管理IT系统开发和采购的法律要求。 [RNID12]
项目特定功能要求(在备选方案分析中进一步讨论)如下:
支持空间数据类型和空间分析
支持(或耦合到)统计计算工具
支持键值数据存储和/或XML数据存储
备选方案分析¶
渐进式筛选基于成熟度和可持续性标准,这些标准并不特定于此项目,但可以确保所选解决方案可以在企业级的不同项目中使用,从而间接降低支持成本、数据库管理等。
有关主要RDBMS产品的性质、特点和市场份额的详细信息,请参阅 European Commission's Report on the Oracle/Sun Microsystems merger .
这个 proprietary DBMS market share 估计值各不相同。以下排名基于年收入:
Oracle (约占50%,
IBM DB2 (约占20%,
微软 SQL Server (大约17%)。
在 EC Report :
MySQL (以及它的各种克隆和分叉,例如 MariaDB, Drizzle 和 Percona Server )拥有开源RDBMS最大的市场份额。
Oracle对三个开源RDBMS的相关技术优势的评估引用于 EC Report :
通知方认为,数据库产品Ingres和PostgreSQL也可在开源许可下使用,技术上优于MySQL,特别是针对现有Oracle客户的高端企业使用。因此,如果任何开源数据库产品能够对Oracle施加竞争约束,那么它将是Ingres或PostgreSQL,而不是MySQL。
—第662章
目前, Ingres 无法包含在候选集中,因为社区版本似乎未处于活动开发状态。 Ingres 使用双重许可模式:开放源码(社区)版本在gplv2下免费提供给最终用户;专有版本由 Actian. 可在 Ingres Community 站点不提供社区和企业版本之间的清晰分离。此外,分析了 Ingres commit activity 上 Ingres source code repository 表示在过去12个月内没有对主分行作出承诺。关于 IngresGeospatial 组件,可用的路线图还指示项目上没有最近的活动。
这个 EC report 根据2009年进行的第三方评估,概述了总体拥有成本(TCO),并指出:
mysql和postgresql在最小部署的价格上是可比的,而在最大部署的价格上是迄今为止最低的。虽然mysql和postgresql的价格水平是直接可比的,但没有一个是可以比的。 [专有的] 对于大型部署,供应商接近这些软件包中的任何一个。
—§243及以下
OpenVirtuoso, 另一个对象关系数据库管理系统满足最低成熟度标准,并包含在备选方案集中(OpenVirtuoso在EC报告中没有提到,该报告主要关注Oracle和MySQL的直接竞争对手)。
候选集包括:
空间数据支持
对空间组件的支持是一个特定于项目的需求,在实践中,它允许3个候选者之间进行决策。
选定的RDBMS must 支持空间数据:
ogc驰名文本(wkt)和ogc驰名二进制(wkb)数据类型 [ISO_19125-1:2004]
地理标记语言(GML)导入/导出 [ISO_19136:2007] [ISO.IEC_13249-3:2011]
空间参考系转换 [ISO.IEC_13249-3:2011]
de-9im空间运算符(Clementini/Egenhofer运算符) [ISO_19125-2:2004]
MySQL 目前缺乏空间组件的完整实现。
空间构成 OpenVirtuoso 仅在程序的专有版本中可用。
PostgreSQL + PostGIS 所选选项是否:
PostGIS是PostgreSQL的扩展,它允许空间对象使用ogc-wkt和wkb格式存储在数据库中。(PostgreSQL是一个对象关系数据库,允许定义复杂的用户数据类型)。
空间数据可以导出到GML,这是OCG定义的XML语法,是一种数据建模和地理信息的开放交换格式。GML用于欧盟的Inspire数据模型和数据交换规范。 [Inspire].
支持尺寸扩展的9交叉点模型 (DE-9IM) 基本上保证了所有相关的拓扑谓词(用于检查两个几何体之间拓扑关系的函数)的实现。
Postgis还支持 GeoJSON 和 TopoJSON, 这对于地图可视化的目的(例如使用JavaScript库,如 D3.js )
最后,Postgis还支持基于gist的R树空间索引。
注解
如果只需要简单的SQL数据库引擎,那么在维护对空间数据和运算符的支持的同时,推荐的选项是 SQLite + SpatiaLite.
在 MPLv1.1 许可证,如果与EUPLv1.1完全兼容。
sqlite位于 Public Domain 执照,那不是 OSI-approved licence :可能需要从 Hwaci (取决于成员国的具体法律要求)。
统计计算支持
PostgreSQL还支持另一个特定于项目的需求:支持统计分析。
至少有两种选择(见 [Conw11] 例如:
使用pl/r,一种可加载的过程语言扩展,支持在 GNU R 统计计算语言;
使用访问数据库 RPostgreSQL, 这个 GNU R 与PostgreSQL数据库系统的接口。
基本上这意味着,如果需要:
GNU R提供的统计能力可以被PostgreSQL数据库以数据库程序员熟悉的方式调用;
存储在PostgreSQL数据库中的数据可以由GNUR以统计学家熟悉的方式访问。
在上述讨论中暗含采用 GNU R (gplv2)如果需要任何“异常”的统计程序(例如用于统计披露控制)。 1
键值和/或XML数据存储
支持键值数据存储或XML数据存储是一个(合理的)功能性项目需求。
国家一级的通用数据模型可以基于众所周知的 先验的 要求,即需要生成欧盟统计局THB指标数据立方体,因此需要在微数据级别存储适当的变量。
但是,不同国家可能需要/希望储存关于被害人、贩运者、路线等的其他变量,以符合国家报告要求。这些需求是无法预见的,并且不能适应于一个单一的、规范的关系数据库模型。存在两种备选方案(可能相互补充):
一 NoSQL -类似的方法,其中附加的数据存储为一组半结构化的键值对;
一种类似于SDMX的方法,其中使用XML模式描述数据的结构,数据本身存储在XML结构化文本中。
PostgreSQL提供了支持以下任一选项的基本功能:使用 hstore 模块(定义hstore数据类型和函数)和使用本机XML数据类型和函数(使用 xmllib2 解析器和工具箱)。
关于可移植性和支持的说明
PostgreSQL默认包含在主要的Linux发行版(debian/ubuntu和redhat/centos/fedora/scientific)中,尽管每个Linux发行版的官方存储库中维护的版本可能不是最后一个。但是,所有PostgreSQL版本都可以在PostgreSQL APT存储库(对于Debian系列)和PostgreSQL yum存储库(对于Red Hat系列)中使用。
PostgreSQL也可用于Microsoft Windows和Mac OS X。
与选定的FOSS操作系统一样,PostgreSQL和Postgis都是免费的,但PostgreSQL提供商业版本和技术支持。( 尤其是 ,由一个主要的开发人员, EnterpriseDB) 对于Postgis( 尤其是 ,由主要开发人员之一, Refractions Research )
真实世界的使用¶
下表列出了在PostgreSQL+PostGIS解决方案上运行的项目示例。
这种选择(完全)偏向于空间数据系统:它侧重于国家测绘和地籍(土地测量)机构、空间数据基础设施以及安全和应急响应系统。
然而,空间数据类型比文本、数字或日期数据类型更复杂,空间数据库通常比非空间数据库支持更重的工作负载。因此,即使一个给定的系统没有一个主要的空间组件,这些例子也可以看作是所提出解决方案的“压力测试”结果。
组织、系统或项目 |
工具书类 |
Eurogeographics (MCA) |
|
Gestione Integrata e Interoperativa dei Dati Ambientali (SDI),意大利 |
|
Geodatastyrelsen (MCA),丹麦 |
|
Global Disaster Alert and Coordination System (SDI),联合国和欧盟JRC |
|
环境与安全全球监测,EC-JRC |
|
Institut national de l’information géographique et forestière (MCA),法国 |
|
Instituto Geográfico Nacional (MCA),西班牙 |
|
Maanmittauslaitos (MCA),芬兰 |
|
Ordnance Survey (MCA),英国 |
|
Paikkatietoikkuna (SDI),芬兰 |
|
Police Crime Map 英国 |
|
Publieke Dienstverlening op de Kaart (SDI),荷兰 |
|
Statens Kartverk (MCA),挪威 |
地图/地籍局
空间数据基础设施
脚注
- 1
对统计软件包的讨论/比较超出了本文档的范围。在这种情况下,它也被认为是不必要的,因为GNU R项目是 事实上 统计计算标准。
- 2
- 3
- 4
网址:http://www.gdmc.nl/zlatanova/gi4dm2010/gi4dm/pdf/p116.pdf
- 5
网址:http://www.eurosdr.net/workshops/postgis/7 rasmussen de martino u nielsen u kms u denmark.pdf
- 6
网址:http://meetingorganizer.copernicus.org/egu2012/egu2012-7404.pdf
- 7
- 8
- 9
网址:http://inspire.jrc.ec.europa.eu/events/conferences/inspire_2012/presentations/143.pdf
- 10
- 11
- 12
网址:http://www.eurosdr.net/workshops/postgis/8 bennett urdance survey uk.pdf
- 13
- 14
- 15
网址:http://www.tudelft.nl//fileadmin/faculteit/lr/documenten/onderwijszaken/reporture_postgis.pdf。
- 16
网址:http://joinup.ec.europa.eu/sites/default/files/studies/idabc case study norwegian%20mapping%20authority-final-version.pdf
- 17
网址:http://www.eurosdr.net/workshops/postgis/6偅pedersen偅statkart偅norway.pdf
- 18
网址:http://norgedigitalit.no/norge_digital/engelsk/about_norway_digital/
工具书类
- Conw11
康威(2011)-损益表-先进分析的快速通道。网址:http://bunsen.credativ.com/~jco/2011/plr-postgresopen-2011.pdf http://bunsen.credativ.com/~jco/2011/plr-pgest-2011.pdf
- Inspire
2007年3月14日欧洲议会和理事会指令2007/2/EC建立欧洲共同体空间信息基础设施(inspire)网址:http://inspire.jrc.ec.europa.eu
- ISO.IEC_13249-3:2011(1,2)
“信息技术数据库语言SQL多媒体和应用包第3部分:空间”url:http://webstore.iec.ch/preview/info_isoice13249-3%7bed4.0%7den.pdf
- ISO.IEC_9075:2008
“信息技术数据库语言SQL”
- ISO_19125-1:2004
“地理信息——简单功能访问——第1部分:通用体系结构。”网址:http://portal.opengeospatial.org/files/?工件编号=25355
- ISO_19125-2:2004
“地理信息——简单功能访问——第2部分:SQL选项”url:http://portal.opengeospatial.org/files/?工件编号=25354
- ISO_19136:2007
“地理信息--地理标记语言(GML)”网址:http://www.opengeospatial.org/standards/gml