主流空间数据库及空间数据库引擎的分析比较
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
主流空间数据库及空间数据库引擎的分析比较[摘要]空间数据库是地理信息系统研究的热点,空间数据库引擎是是空间数
据库技术的核心。本文分析比较了主流空间数据库以及主流空间数据库引擎的性能优劣,提出了设计高性能空间数据库引擎的原则,具备一定的借鉴意义。
[关键字]空间数据库引擎空间数据库
随着科学和社会的发展,以空间数据库形式存储空间数据的方法渐趋主流[1]。空间数据库虽然在空间数据的数据模型、存取结构、查询语言的发展方面取得了一定的进展,但在大型空间数据库的建设上还需进一步研究。空间数据库引擎在组织与管理海量空间数据中获得了广泛应用。但目前主流的空间数据库引擎在多源数据空间集成方面表现不够突出。空间数据库体系的发展经历了基于关系模型的空间数据库、面向对象的空间数据库和基于对象——关系模型的空间数据库三个阶段
1主流空间数据库
目前空间数据库产品众多,但在实际应用中,主要用到的空间数据库产品有Microsoft公司的SQLServer以及Oracle公司的Oracle。
SQLServer采用了标准的客户机/服务器体系结构,以及图形化的用户界面,使系统管理和数据库管理更加直观、简单。SQL Server具有丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地。
Oracle 公司于1979 年,推出了基于SQL 标准的关系数据库产品,可在100 多种硬件平台上运行(包括微机、工作站、小型机、中型机和大型机),支持多种操作系统。Oracle 的分布式结构可将数据和应用驻留在多台计算机上,而相互间的通信是透明的。用户的Oracle 应用可方便地从一种计算机配置移植到另一种计算机的配置上。根据IDG(国际数据集团)全球UNIX 数据库市场报告,Oracle 占市场销售量的50%。
两大主流空间数据库的比较:从普通商业数据库的角度来讲,二者都是功能相当完善的数据库系统,均适合于逻辑、业务复杂的企业级系统。对稳定性、可扩展性、安全性、容错性、事务性要求比较高的场合采用Oracle、SQL Server等绝对没错。
从空间数据库的角度来讲,两者有几点不同:
(1)在Oracle的最新版本中,标注文本开始采用OGC标准定义,用于表示制图中的文本信息,其位置信息、制图样式更加精确详细。而SQL Server对于OGC规范的支持,在其2008版本之前基本没有得到体现。
(2)Oracle中采用了各种措施来增强对3D几何模型和功能的支持,包括支持使用激光扫描仪等获得的三维点的数据集、使用TIN表示地面、三维坐标系等,解决了不断增多的三维应用系统的需求。SDO_GE0METRY存储三维模型,增加参考树作为三维实体的索引算法。与之相对的是,微软公司提供了Virtual Earth Interactive SDK,用户可以通过VE来存取和表现SOL Server中的空间数据。这就使得其三维模块应用的普遍性相比Oracle来讲要稍逊一筹。
(3)Oracle中提供了完善的自定义数据类型功能,其自定义类型不受字节大小限制,完善的解决了相关问题。由于SQLServer UDT (用户自定义类型)8000字节的最大限制,导致无法实现定义空间数据类型,所以使用了聚合函数来克服这个问题,这点比较令人遗憾的。
Oracle数据库的主要目标是服务于那些要求海量数据处理能力的大型公司或政府部门。它的强大功能来自其允许用户快速而准确地进行数据检索的能力,也来自于其强大的保证数据的完整性和一致性及维护数据安全性的能力。因此,Oracle是建立大中型数据库管理系统的数据库选型中主要的选择对象之一。
2空间数据库引擎
空间数据库引擎(SDE)是近年来发展起来的管理海量空间数据的新技术,它作用于通用数据库管理系统,实现了空间图形数据与属性数据的一体化存储和统一的查询语言,大大提高了海量空间数据的管理和操纵能力。依据数据库引擎与数据库管理系统之间的关系,当前主流空间数据库引擎可分为两种模式,即中间件模式和内置模式[3]。
通常情况下,SDE研究的主要内容包括三个方面:数据模型、数据存储、数据索引[4]。数据模型决定了系统能表示什么,不能表示什么,表达地理空间的精度如何。数据存储就是概念模型向物理模型的一个映射。数据索引即解决“数据如何快速查询的问题”。
目前,国内外较为流行的主要集中在“关系型数据库+空间数据引擎” 和“扩展对象——关系型数据库” 两方面。其中ArcSDE、SpatialWare 以及SuperMap 的SDX+皆属于前者,后者以Oracle Spatial最为代表性。
主流空间数据库引擎的性能比较:下面从数据库支持、空间索引、是否支持多用户并发访问、事务处理以及数据模型等方面对不同的数据库引擎产品进行分析比较,如表1:
由表1可以看出,Oracle Spatial和ArcSDE虽然都是数据库引擎,有相似之处,但从许多方面分析,如:数据库支持、空间索引、是否支持多用户并发访问、事务处理以及数据模型都不相同;从空间查询和属性查询比较它们的性能,Oracle Spatial明显占优,而从加载数据和相同数据量所耗费的磁盘空间分析,ArcSDE的压缩二进制的存储模型表现更好。
3结论
本文主要描述了空间数据的概念以及空间数据的主要存储方式。研究了主流空间数据库的性能与适用范围,对Oracle数据库和SQL Server数据库之间的性能做了比较与分析;对空间数据库引擎的概念和研究内容做了分析,对主流的空间数据库引擎做了分析,并且对于主流空间数据引擎的性能做了分析与比较。
“关系型数据库+空间数据引擎”的管理对象方式是“黑箱”,客户端不能直接在数据库表一级直接操作底层数据对象结构中的内容。“扩展对象——关系型数据库”的管理对象相关方式是“白箱”,好处是其客户端可以直接通过SQL访问数据,但这造成数据的一致性方面的问题。