空间对象模型包含以下几个层面的内容。
(1)几何对象模型,用于描述空间对象的空间位置和几何形态。
(2)空间关系模型,用于描述空间对象内部和外部以及对象之间的关系模型,主要用于表达空间拓扑关系、方向等信息,其中最常用的就是拓扑关系模型。
(3)属性模型,用于描述空间对象除几何与空间关系之外的附属信息。例如,对于一条道路而言,其属性可以有修建时间、施工单位、使用年限等。由于这些信息能够采用关系数据模型很好地表达和存储管理,所以,长期以来对于空间对象的研究主要集中在几何对象与空间关系的研究方面。由于空间对象模型的前两个层面内容比较适合用对象模型来表达,而第三个层面的属性信息比较适合用关系模型来表达,因此,目前比较主流的做法是采用对象关系模型(Object-Relational Model)来表达空间数据。目前NOSQL的研究与应用也正在兴起,它在空间信息方面的应用也正成为研究热点问题,但这不属于本书要讨论的问题。(www.xing528.com)
Oracle Spatial采用的是对象关系模型。所谓对象关系模型,是在关系模型的基础上整合对象模型或用户自定义数据类型而形成的一种混合模型,它使得关系数据库管理系统具有处理用户自定义对象类型的能力。所以,从本质而言,它就是一种能允许用户集成面向对象特征的关系模型。在Oracle Spatial的对象关系模型中,这种自定义的对象类型主要包括SDO_GEOMETRY、SDO_GEORASTER和SDO_RASTER等。
Oracle Spatial中,空间对象可以被表达成矢量格式或栅格格式。对于矢量数据,点采用唯一的(x,y,z)坐标表示,线则是一个点串,面一般也采用多边形来描述,是封闭线围成的一个区域。这种矢量数据可以精确地记录空间对象的空间位置和几何形态。在Oracle Spatial中,数据类型SDO_GEOMETRY是专门为空间对象的几何数据而设计的。对于栅格数据,它通过对其覆盖空间对象的一系列单元格赋值来表达空间对象,通常采用单元格数组的方式。这种栅格数据与矢量数据相比,其精确度相对较低,但它是很多空间分析的理想支持数据类型。SDO_GEORASTER和SDO_RASTER就是Oracle Spatial为支持栅格数据而设计的两种数据类型。下面对Oracle Spatial中的主要数据模型进行一一阐述。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。