FDO的相关概念介绍

FDO的相关概念介绍


发布日期: 2016-10-27 更新日期: 2016-10-27 编辑:黄馨宁 浏览次数: 3414

标签:

摘要: 要想了解对FDO有深入的了解,那么首先就要对它的一些相关的基本概念有一定的理解。 首先是数据相关的概念 1) 要素(Feature) 要素是对自然界中对象的一种抽象,是指构成一个客观事物的存在并维持其运动的必要的最小单位,它直接或间接关联于某个地理位置。一个空...

要想了解对FDO有深入的了解,那么首先就要对它的一些相关的基本概念有一定的理解。

首先是数据相关的概念

1) 要素(Feature) 要素是对自然界中对象的一种抽象,是指构成一个客观事物的存在并维持其运动的必要的最小单位,它直接或间接关联于某个地理位置。一个空间要素具有一个或多个几何属性。一个非空间要素没有几何属性,但是关联与一个空间要素,同时要素也是是系统产生、变化、发展的动因。

2) 模式(Schema) 模式是一种对于真实世界中的对象在建模时所使用的数据类型的逻辑描述,它是元数据,也是是数据源中数据的类型模型。

3) 模式覆盖(Schema Override) 模式覆盖包含了覆盖默认的模式映射的规则。

4) 模式映射(Schema Mapping) 模式映射描述了模式元素和数据源物理对象之间的对应关系。

5) 模式元素(Schema Element) 一个模式是由一个模式元素的集合组成的,而一个模式要素又定义了一种特定类型的数据。模式元素之间是通过继承和聚合关联起来的。

6) 类类型(Class Type) FDO类定义类FdoClassDefinition的一个实例是一个类型,用于来代表空间要素或者非空间要素的属性。

7) 要素类(Feature Class) 用于描述真实世界中对象的模式要素的类称为要素类,它由一个类名和多个(或零个)几何属性定义组成,它描述了对象实例的数据类型。

8) 属性(Property) 属性是类的一个特性,一个类可以由一个或多个属性组成。每一个属性都具有某种特定的数据类型,它可以是一个简单数据类型,还可以是由类所定义的复杂数据类型。FDO共支持五种类型的属性:关联属性(Association)、数据属性(Data)、几何属性(Geometric)、对象属性(Object)和光栅属性(Raster)。

9) 关联属性(Association Property) 在FDO API中,两个类之间的对等关系进行建模要用到类FdoAssociationPropertyDefinition,它类似于数据库中两个表之间通过主键和外键所建立的关联关系,支持基数(Cardinality)设置(一对一或一对多)、级联锁定(Cascading Locks)、删除规则(Delete Rules)等。

10) 数据属性(Data Property) 数据属性是一种非空间类型的属性,数据属性的实例可以包含一个类型为boolean、byte、date/time、decimal、single、double、Int16、Int32、Int64、BLOB或CLOB的值。

11) 维度(Dimensionality) FDO中包含两种类型的维度,即形状维度和坐标维度。形状(Shape)维度由枚举类型FdoGeometricType所定义,FDO支持点(Point)、线(Line)、面(Surface)、实体(Solid)四种类型的形状,它们的形状维度分别为0、1、2、3。坐标维度由枚举类型FdoDimensionality所定义,它定义了XY、XYZ、XYM、XYZM四种类型的坐标维度。

12) 几何属性(Geometric Property) 一个几何属性的实例包含了代表一个几何对象,几何属性的定义指定了几何对象的形状和坐标维度。一个几何属性定义允许同时支持多种形状,例如一个几何属性对象可以是一个点,另外一个可以是一条线,默认情况下几何属性定义允许四种形状的任意结合。不过有些数据源并不具备能力,例如每个SHP文件只支持一种类型的几何对象,如果一个SHP文件中存放了点数据,就不可以存放线、面或实体数据。所有几何属性的实例必须具有相同的坐标维度,默认的坐标维度为XY。

13) 几何对象(Geometry) 几何对象有一个系列坐标值所组成,枚举FdoGeometryType定义了几何对象的类型。目前,FDO并不支持实体(Solid)类型的几何对象。调用方法FdoIConnection::GetGeometryCapabilities()可以得到某个FDO Provider所支持的几何对象类型和坐标维度。

14) 对象属性(Object Property) 对象属性是一种复杂类型的属性,由一个类定义所定义,它可以用作一个类的属性,也可以用于定义另一个对象属性,例如在介绍属性时我们提到类型“地址”就是一个对象属性,它由三个属性“街道名称”、“门牌号”和“街道类型”所组成。一个对象属性的值既可以是一个对象,也可以是一个对象集合,例如“地块”要素类中“地址”属性的值是单个对象,“电子设备”要素类中“检查记录”属性的值是一个集合,包含多个对象。

15) 光栅属性(Raster Property) 光栅属性定义了处理一张光栅图像所需的信息,例如每个像素多少个比特,图像的像素高度和宽度等。16) 空间上下文(Spatial Context) 空间上下文描述了坐标系、单位、空间范围等要素的元数据(Metadata),任何几何对象必须关联与一个空间向下文。

操作相关的概念

1) 命令(Command) 一个FDO命令代表了一种针对数据源的操作,例如Select命令用于查询要素,Update或Delete命令用于更新要素。FDO预定义了一系列命令用于执行一些通用的、常见的操作,每种FDO Provider也可以自定义一些新的命令以执行和Provider相关的操作。

2) 表达式(Expression) 表达式用于创建一个过滤器,它是过滤器或一个更大的表达式的子句,例如过滤器“Lanes>=4 and PavementType= 'Asphalt'”由两个表达式组成。

3) 过滤器(Filter) 过滤器用于选择数据源中的数据的一个子集,例如我们可以定义一个过滤器,选择要素类“道路”中在某个位置200米范围内两个车道的所有道路要素。许多FDO命令需要指定一个过滤器,例如Select命令使用过滤器查询符合过滤条件的所有要素,Delete命令使用过滤器删除符合过滤条件的所有要素。

4) 锁(Lock) 在更新数据源中的数据时,用户可以锁定这些数据,获得修改它们的控制权,避免其他用户修改这些数据。FDO支持两种类型的锁:事务锁和持久化锁。事务锁是一种临时锁,它只有在事务提交和回滚之前发挥作用;持久化锁会一直发挥作用直到用户对这些数据解锁。

5) 事务(Transaction) 一个事务是指由一系列数据操作组成的一个完整的逻辑过程,它具有如下特性: 原子性:整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。事务在执行过程中发生错误,会被回复(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。一致性:在事务开始之前和事务结束以后,数据的完整性限制没有被破坏。隔离性:两个事务的执行是互不干扰的,一个事务不可能看到其他事务运行时,中间某一时刻的数据。持久性:在事务完成以后,该事务对数据所作的更改便持久地保存在数据库之中,并不会被回复。

关注公众号
获取免费资源

随机推荐


Copyright © Since 2014. 开源地理空间基金会中文分会 吉ICP备05002032号

Powered by TorCMS

OSGeo 中国中心 邮件列表

问题讨论 : 要订阅或者退订列表,请点击 订阅

发言 : 请写信给: osgeo-china@lists.osgeo.org