Geodatabase和ArcSDE中文教程part2

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第2章Geodatabase体系结构2、1Geodatabase体系结构用户通常认为geodatabase是地理信息的物理存储,但从根本来说,是使用DBMS或文件来存储的。除了作为数据集集合的一个物理实例,每个geodatabase还有其他关键方面特征。1、geodatabase有一个广泛的信息模型来表达和管理地理信息。这个信息模型的实现是通过一系列简单数据表,这些表是存储在要素类、栅格数据集和属性表中的。另外,高级的GIS数据对象通过增加GIS行为、规则来管理空间完整性,以及增加工具来处理要素、栅格和属性表的大量的空间关系。geodatabase的softwarelogic提供了通用的applicationlogic,贯穿整个ArcGIS,用于访问和处理各种数据格式的地理数据。无疑,它是支持geodatabase的,并且支持shapefiles,CAD文件,TIN's,grids,CAD数据,imagery,还有其他大量的GIS数据源。geodatabase具有一个事务处理模型来管理GIS的数据工作流。2、2Geodatabase基于关系原则存储用户倾向于认为DBMS本质上是开放的,这是因为关系数据模型的简易性和灵活性,使得它能支持广泛的应用。Geodatabase的存储模型是以DBMS原则为基础,利用了一系列简单却基本的关系数据库概念。DBMS(Filegeodatabase的文件系统)提供了简单而又合适的数据模型存储和操作表。包括以下的关键概念:数据被组织为表表包含行表中所有的行具有相同的列每一列具有一个类型,如integer,decimalnumber,character,date等等。关系类用于一个表中的行和另一个表中的行发生关联,这是以每个表中都有一个公共的列为基础的。关系完整性规则存在于所有表中。如,每一行总是有相同的列,一个域为每一列指定了有效值或者值范围等等。对ArcSDEgeodatabases来说,还有大量其他的DBMS功能可以应用:SQL,一系列关系函数和操作符可以用于操作表和表中的元素。SQL操作符同时被设计为可以处理普通的关系数据类型,如integers,decimalnumbers,dates,和characters。例如,一个要素类以DBMS表的形式存储。每一行代表一个要素,每一行中列描述了该要素的各种特征或属性,表中的某一列存储了该要素的几何形状(如point,line或polygoncoordinates)。在上面的实例中,shape字段存储了polygon形状。在DBMS中大量的列类型用于shape字段。可以是典型的binarylargeobject(BLOB)类型或者是扩展的空间类型,它们能够被一些DBMS所支持。如,ESRI提供了一个空间列类型用于在ArcSDEgeodatabases存储要素,支持这种类型的关系数据库有Oracle,IBMDB2,和Informix。SQL操作表中的行、列。这些列类型(numbers,characters,dates,BLOB's,spatialtypes等等)在SQL代数中被认为是对象。DBMS管理这些简单的数据类型和表,同时其他应用逻辑实现更复杂的对象行为和完整性约束。在关系数据库管理系统中实现更高层次的对象和行为开发人员为了实现更高层次的具有行为和逻辑的对象,就需要写应用程序代码去实现它。如,一个组织可能实现如下名为EMPLOYEES的表:上面的表是一个简单的关系数据表,包含行和列。每一列的数据都隶属一个独特的数据类型,如character、date和number,DBMS就是在这个数据类型层次上操作信息的。然而,简单的给一个DBMS增加这些信息,不会使DBMS变成一个payroll或employee管理信息系统。增加一列名为“Dollars”用于存储带两位小数的数值,并不意味着将一个DBMS变为一个帐务清算系统。要实现这些需要更高层次的应用逻辑。实现支持雇佣行为的逻辑例子是雇用、实现薪水增长、员工辞职、晋升和奖金管理。业务对象被建模为雇员和他们的姓名、薪水和雇用日期,为了实现这些对象的行为和完整性需要更复杂的和聚焦的应用逻辑。相似的业务对象也普遍应用于GIS。如,topologies,networks,linearreferencingsystems,rastercatalogs,annotations,terrains,maplayers等等,都是高级对象用于实现GIS的行为。对于其他的DBMS应用,具有空间属性类型的表是对他们自己的GIS应用是不够的。简单的DBMS列类型和geodatabase应用对象如topologies对建立地理信息系统是必须的。2、3应用逻辑属于什么?用户可以用很多方法实现这种高层次的逻辑。例如,应用逻辑可以按如下被实现:DBMS中的Storedprocedures和databasetriggers;扩展DBMS的数据类型;建立一个单独的应用逻辑层用于操作表中的行和列类型。在过去的二十年中不计其数的DBMS实现已经证明使用应用逻辑层对于高级应用是一个明智的选择。如,通用的customerinformationsystems(CIS),enterpriseresourceplanning(ERP)systems和帐务清算包都是在应用逻辑层实现了高级的应用,它提供了更多的开放性和可扩展性,高性能操作,丰富的工具包和大大的灵活性。用户通过应用逻辑层与系统交互,执行版本管理,实现大量的操作,仅在focusedactivities中使用SQL。分离的应用逻辑层置于数据层之上允许相同的逻辑被应用于DBMS,files或其他的数据存储格式。这使得这种体系结构更开放。如,在ArcGIS中geodatabase的应用逻辑层也可以用于读取和操作所有的地理数据源CADdata,shapefiles,MapInfodata,IntergraphGeoMediafiles等等。2、4Geodatabase是object-relational的结构Geodatabase采用两层结构:数据存储层和应用层。数据存储层是将GIS数据存储为File、XML、DBMS等多种格式,而应用层则是维护数据的高级逻辑和行为,例如FeatureClasses、RasterDataset、Topology、Network、AddressLocators等等。多层的geodatabase体系结构有时被称为object-relational模型。Geodatabase管理地理数据集的功能由ArcGIS软件和DBMS共同实现。管理地理数据集功能的某些方面,如disk-based存储,属性类型的定义,查询处理及多用户版本处理都被委托给了DBMS。GIS应用程序保留了一些功能,如定义具体DBMS的schema,用于表达各种各样的datasets和domain-specific逻辑,以保持基本记录的完整性和有效性。实际上,DBMS作为一种存储地理数据集的实现机制而被使用。但是,DBMS并没有完全定义地理数据的语义。因此可以认为:geodatabase采用两层体系结构,数据存储层和应用层,在数据存储层实现数据存储和检索,在应用层实现高层数据完整性和信息处理。在其他高级DBMS应用中geodatabase也可以通过这种两层应用结构而实现。Geodatabase对象在DBMS表中以行的形式存储,要素行为由geodatabase应用逻辑提供。所有的ArcGIS应用与geodatabase的这种通用的GIS对象模型通信,而不是实际的基于SQL的DBMSinstance。Geodatabase软件组件实现了这种通用模型的行为和完整性规则,并转换数据请求到合适的物理数据库设计。ArcSDE软件提供了ArcGIS和DBMS之间的一个通用网关。2、5Geodatabase在关系数据库存储在geodatabase的核心是标准的关系数据库模式(一系列DBMS表、列类型、索引等等)。这种简易的物理存储与宿主在应用逻辑层的高层应用相协调,并受它们的控制,应用层可以是ArcGISDesktop、嵌入式ArcGISenginelogic、或者ArcGISserver。这些应用中都包含用于定义通用GIS信息模型的geodatabase对象,并且为所有的GIS应用程序和用户所共享。Geodatabase对象的目的就是暴露高层GIS应用模型给客户端,选择合适的存储模型存储应用模型的具体实现细节,如存储在标准的DBMS表中、filegeodatabases,和XML。Geodatabase的存储包括基于每个地理数据集的schema和rule,还有简单的空间数据和属性数据的表存储。Geodatabase的schema包含定义、完整性规则和地理数据集的行为。这些具体包括要素的properties、topologies,networks,rastercatalogs,relationships,domains等等。Schema保存在DBMS的geodatabase元数据表集合中,这些元数据定义了地理信息的完整性和行为。空间表达要么以矢量要素或栅格数据集的形式用传统的二维表来存储。例如,一个DBMS表可以存储一个要素类,表中每一行代表一个要素。每一行的Shape列都保存了geometry或者是要素的shape,shape列通常保存的geometry是这两种列类型中的一种:BLOBcolumntypespatialcolumntype,如果DBMS支持它要素类是相同类型要素的集合,具有相同的几何类型,如点、线或多边形,具有相同的属性列集合,要素类通常可以由一个独立的表管理。栅格和影像数据集同样也由关系表存储和管理。栅格数据通常比较大,存储的时候需要一个SideTable来存储,将栅格数据集切为小片,或者Blocks,存储在Raster表中,通过Side表的每一行记录去记录栅格中的每一个Block。列类型存储矢量和栅格的geometry随着数据库的不同而不同。当一个DBMS支持空间类型扩展时,geodatabase可以使用这些类型来存储空间几何形状。ESRI也参与了很多扩展空间SQL,如作为SQL3MMSpatial和OGCSimpleFeaturesSQLspecifications的主要创作者。ESRI不仅关注支持独立的OracleSpatialtypes,同时也支持这些类型,使用DBMS的标准来存储geodatabase。目前,支持geodatabase的含有空间类型的DBMS有三种:使用ESRI的spatialtype的Oracle或OracleSpatialtype使用SpatialExtenderGeometryObject的IBMDB2使用SpatialDataBladeGeometryObject的Informix。2、6Geodatabase的事务管理事务是对数据库变动的记录块。GIS数据库,像其它数据库应用一样,必须支持执行数据完整性和应用行为的更新事务。在很多情况下,用户可以使用DBMS的事务处理框架来管理数据编辑和geodatabase的更新。但是,GIS用户普遍有具体的专业事务处理要求,其中最重要的就是这些事务要跨越很长的时间(有时是几天和几个月)。另外,大多数GIS编辑包括协调(orchestrating)多个表中的多行变化和以单独的统一的事务管理这些变化,用户需要能够撤销或重做这些变化。编辑过程可以跨越几个小时甚至几天。通常编辑过程必须是在与中央共享的数据库断开的状态下进行操作的。由于GIS工作流过程可以跨越几天或几个月,GIS数据库必须为日常的操作保持持续地可用,每个用户可能有共享GIS数据库的个人视图或状态。在一个多用户的数据库中,GIS事务必须由DBMS的短事务处理框架管理。ArcSDE在简单DBMS事务处理框架管理高层次、复杂的GIS事务的操作中,扮演着关键的角色。在很多情况下,GIS用户选择长事务工作流是必须的,这样才有可能多用户的DBMS的使用和用ArcSDE来管理中

1 / 9
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功