Geodatabase and ArcSDE讲座.doc_第1页
Geodatabase and ArcSDE讲座.doc_第2页
Geodatabase and ArcSDE讲座.doc_第3页
Geodatabase and ArcSDE讲座.doc_第4页
Geodatabase and ArcSDE讲座.doc_第5页
免费预览已结束,剩余20页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Geodatabase能将空间数据存储在文件、MDB文件或者大型DBMS中。以上三种存储方式的区别在于可存储数据量的不同以及可支持的并发用户数量不同,能够实现从小数据量、单用户的文件数据库到大数据量、多用户并发编辑的企业级DBMS的不同层次的应用。Geodatabase事实上是很多Geographic Dataset的集合,最基本的Dataset的类型包括Feature Classes、Raster Dataset、Attribute Tables。在以上基本要素的基础上,还能定义Geodatabase的Schema、数据的完整性、规则和行为,包括Spatial Reference、Spatial Resolution、Topology、Network、Domain等等。在创建Geodatabase时,首先生成不同的Dataset类型,然后添加或者扩展Geodatabase基本要素的能力,例如添加拓扑、网络、子类以实现GIS行为建模、维护数据完整性以及建立空间关系。不同的数据库中,存储矢量和栅格数据几何特征的字段在是不一样的,如果DBMS能够支持Spatial type Extensions,则能够很容易采用这种方式存储空间几何特征。目前有三种DBMS能够支持Geodatabase的Spatial Type:(1)Oracle using the ESRI spatial type or optionally the Oracle Spatial type;(2)IBM DB2 using the Spatial Extender Geometry Object;(3)Informix using the Spatial DataBlade Geometry Object。Geodatabase将地理要素以表格的形式存储,每行记录代表一个要素。在Geodatabase的数据表支持的数据类型包括:Numbers:包括Short Integers、Long Integers、Single-Precision floating points、Double-Precision Floating Point Numbers;Text;Date;BLOBS;Binary Large Objects用来存储和管理二进制信息,例如Symbols和CAD几何特征;Globe Identifiers:Globe Unique Identifiers。GlobeID和GUID用来唯一标识一行记录。对于矢量要素的存储来说,创建新的Feature Dataset或者新的Feature Class时,需要对数据的环境进行设置,即Spatial Reference,以下为主要的几种空间参考的参数:(1)XY Tolerance指实现Cluster或者进行拓扑验证、缓冲区分析、多边形叠加等操作时,点与点的坐标之间的最小距离。缺省的XY Tolerance是0.001 meter(投影坐标系);如果是State Plane Feet,则缺省值是0.003281feet;如果是地理坐标系,则缺省值是0.000000008982995degrees。一旦点与点的X坐标或者Y坐标的距离小于XY Tolerance,则两点应该合并为一个点。缺省状态下XY Tolerance=XY Resolution * 10。在实际应用中,XY Tolerance太大或者太小均有问题,应该根据实际情况设定合适的Tolerance。在设定Topology时,可以设定不同要素类的Rank,以确保当两个要素的点小于XY Tolerance时,应该是哪个点向哪个点移动。(2)XY Resolution表示存储要素坐标时的数值精度,即可以保留的小数点的位数。缺省状态下的Resloution是0.0001meter(投影坐标系) ;如果是State Plane Feet,则缺省值是0.0003281feet;如果是地理坐标系,则缺省值是0.0000000008982995degrees。对于3D数据以及Linear Referencing数据,可以分别对Z值和M值设置Z Tolerance、Z Resolution,以及M Tolerance、M Resolution可以将Geodatabase的Feature Classes扩展为高级数据类型:Feature Dataset,、Subtypes、Attribute Domains、Relationship Classes、Topology、Network Dataset、Geometric Network、Terrain、Address Locator、Linear Referencing、Cadastral Fabric、Cartographic Representation、Versioning。对于Raster数据的存储来说,Raster数据是采用规则网格表示连续的地理事物和现象。其存储时需要注意以下部分的设置:Coordinate System;Reference Coordinate or XY Location;Cell Size;Count of Rows和Columns。Raster和Image数据类型也是存储和管理在关系表格中,Raster数据通常比较大,存储的时候需要一个Side Table来存储,将Raster切为小片,或者大小通常为128*128或者256*256的Blocks,存储在Raster表中,通过Side表的每一行记录去记录栅格中的每一个Block。Gedatabase的结构 Geodatabase是Object-Oriented的,采用两层结构:数据存储层和应用层。数据存储层是将GIS数据存储为File、XML、DBMS等多种格式,而应用层则是维护数据的高级逻辑和行为,例如Feature Classes、Raster Dataset、Topology、Network、Address Locators等等。Geodatabase的管理功能由ArcGIS软件和DBMS一起实现。目前有三种方法来创建一个Geodatabase:(1) 设计和创建一个新的Geodatabase;(2) 拷贝和修改一个已经存在的Geodatabase Schema(3) 对已经存在的Geodatabase复制数据和Schema Copying the schema of a Geodatabase 有多种方式实现数据库Schema的移动:(1)在ArcCatalog中通过工具将数据Export To XML Workspace Document,选择只导出Schema。然后再点击要导入Schema的Geodatabase,选择Import XML Workspace Document;(2)在ArcMap中利用Extract Data Wizard:包含在Distributed Geodatabase工具栏中;(3)从ArcGIS Model Template中拷贝Geodatabase Schema:利用ESRI网站上已经建立的Model:/datamodels(4)利用CASE 工具和UML语言来创建Geodatabase Schema:但是这种方法的局限性在于:不能够很好的设计Topology,Network,Terrain,Raster Catalog,Map Layer,Map Symbol,Metadata,Cartographic Representation,Semantic Classification。Copying Geodatabase 有三种方法实现Geodatabase的复制:(1) ArcToolbox/Copy;(2) ArcCatalog/Export Geodatabase to XML Workspace;(3) ArcMap/Distributed Geodatabase/Extract Data Wizard;(4) ArcCatalog/Export。 需要注意的是:只有简单Feature Class才能够Copy,对于Feature Dataset、Topology、Network等高级数据类型,无法通过拷贝方式来实现数据的复制。 附件中为ArcGIS 9.2的三种ArcGIS Geodatabase的对比 What is transaction? Transaction事实上是数据库的某一个工作过程。一个Transaction开始以后,可以对数据库进行修改、提交结果以及回滚。一旦提交Transaction,则该Transaction实现的所有变化也将被其他用户和应用获得。 Transaction具备以下特点: (1)Atomic:一旦提交Transaction的工作,所做的修改都会提交到Geodatabase中;一旦回滚,则所有的变化都被放弃; (2)Consistent:Transaction使得数据库状况保持一致性; (3)Isolation:Transaction中的所有变化与其它Transaction的变化相互独立,提交变化以后,其他用户才能获得该Transaction的变化信息; (4)Durable:一旦开始Transaction,它的结果是可持续的。 为了实现以上的目标,DBMS采用一系列的Locking机制以保证多个并发的Transactions能够相互独立。此外地理数据库的Transaction在持续时间和复杂性上变化很大,Geodatabase支持两种类型-maintenance with and without versions,即用户采用短事务或者长事务,也可以在同一个Geodatabase中同时采用以上两种机制。 Schema Locking ArcGIS会自动应用和释放Geodatabase的Shared Locks和Exclusive Locks,以帮助用户管理数据库的变化,不至于与其他的用户发生冲突。 在ArcSDE Geodatabase中,可能会有多个用户同时浏览和编辑同一个数据,则应该保证每一个用户在对其数据浏览和编辑时,数据库的Schema是固定不变的。例如,当加载一个Feature Class到ArcMap中,则它的Schema不能再发生变化。一旦将该Feature Class从ArcMap中删除,没有其他用户查询或编辑该Feature Class,则其Schema可以发生改变。ArcGIS提供了很多自动的Schema Locking机制以帮助管理Geodatabase的变化。 (1)Shared Locks 用户使用一个单独的Dataset时,ArcGIS将自动获取Shared Lock,例如,用户在编辑或者查询Feature Class或者Table时,ArcGIS将自动获取Shared Lock,使得其他用户不能修改Dataset的内容和Schema。对于一个单独的Feature Class或者Table,能够创建任意数量的Shared Locks。当用户使用ArcGIS来修改Geodatabase Schema时,则将创建一个Exclusive Lock,但是如果该Dataset已经创建了Shared Lock,则就不能再创建Exclusive Lock。 (2)Exclusive Locks Exclusive Locks用于锁定Geodatabase的Dataset,以防止其他用户更改数据。一旦具备权限的用户开始修改某个Dataset时,ArcGIS将自动创建一个Exclusive Lock。如果用户希望能够修改一个Geodatabase的Schema,则要确保没有其他人正在使用该数据库。 对于Personal Geodatabase来说, Geodatabase的某一个部分,例如Table、Rows创建Shared Locks或者Exclusive Locks,则整个Geodatabase都将具备Shared Locks或者Exclusive Locks,代表某一时刻只能有一个用户编辑Personal Geodatabase。 对于File Geodatabase来说,只有具备读写权限的用户能够修改File Geodatabase的Schema。对于所有的Geodatabase 来说,如果对Feature Dataset中的某个Feature Class创建Lock,则该Lock应用于整个Feature Dataset的内容。如果相关联的要素之间,有一个要素设置了Lock,则与其关联的另一个要素也具备了Lock。 Data maintenance without versions这是最简单的数据库管理方式,直接采用了DBMS的Transaction模型,Nonversional Edits等同于标准的数据库事务。 当开始编辑数据时,首先创建一个编辑Session,然后才可以实现数据的编辑,保存时,所有编辑的结果将以一个单独的Transaction向数据库提交。一旦提交,则该Transaction所做的编辑结果也能够被其他用户和应用获得。当用户开始编辑时,采用的是直接编辑DBMS时Transaction所采用的Locking机制。ArcGIS没有修改底层的DBMS Transaction 环境,因此当用户同时编辑一个数据源时,将采用Locking机制锁定数据,只保证一个用户正在编辑数据。Nonversional Edit适合于简单要素的编辑,不支持Archiving和Replication等功能。这种方式不需要版本,因此GIS和Non-GIS用户都可以访问一个相同的数据库。 这种方式的局限性是:(1)只能够编辑point、line、polygon、annotation、relationship,不可以编辑Topology和Geometric Network中的要素;(2)对数据源直接编辑,因此不能够Undo和Redo;(3)每一个Transaction必须是在一个单独的Edit Session中开始和结束的,每个Edit Session之能够持续很短的时间。 Data maintenance with versions 如果一个大系统有多种用户环境存在,包括ArcGIS用户以及第三方用户。ArcGIS用户希望能在版本的状态下编辑数据,在编辑的时候保证数据的独立性,直到提交数据才与其他用户共享数据。而第三方用户也希望获取数据库的当前状况,这时就需要将数据库注册为Versioned with the Option to move edits to the base table 。在这种情况下,其他版本数据的变化情况都保存在Delta表中。而对于Default版本,不论是直接将编辑结果保存到Default版本,还是直接编辑Default版本,或者将其他版本的编辑提交到该版本,这些编辑都是保存在Base Table中,保证不使用ESRI软件的用户也能够在标准事务中获得和修改数据,不需要创建Multiversioned Views。 把数据库注册为as Versioned with the Move edits to base option的局限性如下: (1)只能够编辑points、lines、polygons、annotation、relationships,而不能够编辑Topology和Geometric Network中的要素;(2)不能实现Archive、Replicate;(3)当用户直接编辑Default版本或者将一个版本提交到Default版本,则不能够实现冲突解决的能力,因此可能会Overwrite其他用户的编辑成果。 附件一为Geodatabase的整体特征图 附件二为三种ArcSDE Geodatabase的区别Geodatabase and ArcSDE系列讲座第一部分:Geodatabase的基础知识结束,欢迎继续关注第二部分 :Geodatabase data Storage and schema 附件Geodatabase的整体特征图.JPG (67.54 KB) 2006-12-1 09:01 Geodatabase的整体结构图三种ArcSDE Geodatabase的区别.JPG (132.48 KB) 2006-12-1 09:01 三种ArcSDE Geodatabase的区别三种ArcSDE Geodatabase的区别1.JPG (45.79 KB) 2006-12-1 09:01 三种ArcSDE Geodatabase的区别(Continued)附上一个不同级别arcgis desktop对geodatabase的操作权限,对很多不能管理geodatabase一些要素的用户相信会有一些帮助附件1.gif (12.41 KB) 2006-12-1 15:20 虽然对File Geodatabase和Personal Geodatabase的管理任务很少,但是还是有些管理任务是很重要的,“附件一”为两种数据库需要的管理工作。 Compressing与Compacting所表示的含义与操作是不同的。 对于File Geodatabase来说,Compressing与Smart Data Compression(SDC)采用相同的技术,并且提供更多的优越之处。为了减小存储空间,可以将File Geodatabase的矢量要素和Table压缩成Read-Only格式。Compress以后的数据在ArcMap和ArcCatalog中显示时与未压缩的数据一样,只是不能编辑。 File Geodatabase的Compress不是在物理上将数据压缩得更小,而是将数据组织得更加紧凑,例如重复的完全相同的多点会用一行记录加上点的个数来表示。ArcGIS对不同的字段采取不同的压缩方法,压缩比例由要素的类型以及属性数据的冗余程度来决定。右键单击File Geodatabase,选择Compress File Geodatabase实现该功能。Compress和Uncompress也可以通过Geoprocessing的工具来实现。除了可以通过Compress File Geodatabase功能来实现文件的压缩以外,如果原始数据的Resolution很精细,而在实际应用中不需要很高的分辨率,则可以将原始数据导入到一个新的粗分辨率的数据库。不能够单独Compress和Uncompress一个Feature Dataset中的Feature Class,如果希望对该Feature Class压缩,则需要将该Feature Dataset中的所有的Feature Class都压缩。对于Rsater Dataset和Raster Catalog的压缩只能由File Geodatabase Geoprocessing工具来实现。 一旦Feature Class和Table被压缩,则不能够对数据进行编辑,并且不能够修改Coordinate System Information、Subtypes、Attribute Domains、Default Value、Filed and their Properties、Representations。唯一能够修改的就是Feature Class和Table的Alias以及Attribute Indexes。一个Feature Dataset中可以添加Uncompressed Feature Class,如果一个Feature Dataset中同时包含Compressed和Uncompressed的数据,则Uncompressed的数据也不能够被编辑或修改。“附件二”为File Geodatabase对Compress功能的支持程度。 用户能够压缩Relationship、Topology、Geometric Networks、Network Datasets 、Terrains中的要素类,但局限是:不能够针对已经Compressed的Feature Class创建Topology或者Geometric Network,如果压缩Relationship Class的一边的数据,则另一边的数据也不能编辑。如果Topology的Feature Class已经Compressed,则Topology的属性也不能修改。“附件三”为高级要素对Compress功能的支持程度。 Compacting是将文件记录整理、重新归类,以减少存储空间。如果经常添加或者删除数据,就必须定期对File 或者Personal Geodatabase实现Compact,这能够减少文件大小,提高访问速度。 File Geodatabase是将数据存在硬盘的文件夹中,每个Dataset是一个文件,该文件可以达到TB级,而Personal Geodatabase是将数据存储在MDB文件中。当第一次将数据加载到File Geodatabase或者Personal Geodatabase中时,文件中的记录是顺序排列的,但是如果以后删除或者添加要素,则文件中的记录就没有顺序了,会存在很多没有利用的空间,这将加大文件存储的空间,使得数据访问起来速度很慢。 在ArcCatalog中右键单击数据源,选择Compact Database,则可以实现数据库的Compact。如果某个Database正在ArcMap中编辑,则不能够被Compact。附件两种数据库的管理工作.JPG (25.18 KB) 2006-12-8 09:03 File Geodatabase对Compress功能的支持程度.JPG (29.48 KB) 2006-12-8 09:03 高级要素对Compress功能的支持程度.JPG (17.4 KB) 2006-12-8 09:03 Versioning使得多个用户能够同时编辑一个Geodatabase,而不用去复制数据库或者锁定数据库。一个Geodatabase能够有很多Version,事实上不管一个Geodatabase有多少个Version,数据库中只保存一套Tables和Feature Classes。Version是对Geodatabase的快照,而不是复制。对所有版本的编辑都是保存在Delta表中的。通过创建Version,多个用户可以同时对一个Geodatabase进行编辑,而且多个用户也可以同时编辑一个Version。 在ArcCatalog和ArcMap中,可以像未版本化的数据一样实现数据的查询、浏览和编辑。当用户连接一个多用户的Geodatabase时,通常需要选定连接哪个Version。 所有的ArcSDE Geodatabase均具备Default 版本,所有版本的最原始的源就是Default版本。能够通过提交更新的方式来维护和更新Default版本,也可以对其直接编辑。 用户在创建版本时,可以为版本设定访问权限。对某个版本的编辑只会应用到该版本,而某个版本中Schema的变化则会影响到所有其它的版本。一旦停止编辑,可以将编辑结果提交到任意父版本。首先要Reconcile,即比较提交版本中的数据与父版本是否有冲突,如果有冲突则提供冲突解决办法。然后就是Post,则将编辑结果提交到父版本。 每一个Table和Feature Class包含两个Delta表:A表和D表。每次更新或者删除版本中的一个记录时,则可能对一个或者两个Delta表进行修改。一个Version包含所有的Original 表以及所有的Delta表的变化,当显示和查询一个版本时,ArcGIS是从Original表和Delta表中查找相应的信息。 对于Feature Class和Table的所有编辑,不管是位于哪个Vision中,都是保存在相同的Delta表中。因此Base中的所有行,以及A和D表的所有记录表示了Feature class和Table的所有版本的信息,任何一个版本都是这三个表的子类。 ArcGIS记录Delta表中的记录属于哪个Version的办法是:A表和D表的每一行都用State ID进行标识。当编辑一个版本时,产生一个新的State,同时产生新的一行添加到A表或者D表。一个系列的States记录了版本从Base表到当前状态,该系列称为Lineage。当你显示或者查询一个Version时,ArcGIS从版本的Lineage中得到State ID,然后从A表和D表中找到相应的信息。 当编辑Geodatabase时,Delta表的大小和State的数量都在增加,表格与State越多,每次处理时的速度就越慢,因此应该定期利用ArcCatalog中的Compress工具进行数据库压缩,利用Analyze工具实现数据库的Statistics的重建。 在进行数据库处理的时候,有三种选项:Registered As Visioned without the option to move edits to base ,registered as visioned with the option to move edits to base,not registered as versioned. (1) Registered As Visioned without the option to move edits to base能够实现的操作包括Undo和Redo操作、长事务编辑、为设计和工程使用命名版本、使用Geodatabase归档、使用数据库复制。不能做的事:创建拓扑、从拓扑中添加或删除要素、添加和删除拓扑规则、创建几何网络、从几何网络中添加或删除要素类。 (2) registered as visioned with the option to move edits to base不能够做的事:编辑参与拓扑和几何网络的要素类、数据库归档、数据库复制(3)not registered as versioned 是最原始的状态,能够实现复杂数据类型,包括拓扑和几何网络的编辑与更新。因为Default版本是数据库中最关键的,需要经常更新,因此需要对Default版本定期备份。 如果用户注册版本时采用的是Register with the option to save edits to the base table,编辑简单要素时,编辑的结果还是保存在Delta表中,一旦保存,则这些变化就要从Delta表转移到Base Table中,而在Delta表中不再保存编辑的结果。用户如果编辑的不是Default版本,则变化也是记录到Delta表中,Save以后,变化也依旧保留在Delta表中,然而当Reconcile和Post到Default版本以后,变化就转移到Base 表中了。如果是将版本中的变化Reconcile和Post到非Default版本,则在Delta表中依旧会保留变化信息。Register with the option to save edits to the base table的缺陷就是一旦编辑错误,不能够回退,只能够放弃整个编辑过程。这种方法主要是使得第三方应用能够在版本化的环境下执行类似Non-Version 编辑,而ArcGIS用户是不能够通过这种设置来实现Non-Version编辑的。 第三方应用(非ArcGIS软件或者非AO开发的软件)通常是只能对Base Table进行查询,不能够看到Delta表中的变化。如果将数据注册为版本化,而不选择move the edits to the base table,当用户还没有将编辑结果Reconcile和Post到Default版本时,第三方用户是无法看到其他版本的编辑情况。Unregistered as Versioned将使得用户保留上一次Compress后的数据,而未Compress的数据则将丢失。 对于海量的、多用户的数据库,可以使用自动Reconcile和Post的功能。有两种方式可以实现:Batch Reconcile和Version Reconcile Services 在版本化编辑中,可以多个用户同时编辑一个版本中的数据,也可以多个用户同时编辑同一数据库的不同版本。这两种情况会导致以下两种冲突的发生: (1)多个用户同时编辑一个版本中的数据:当多个用户同时编辑一个Version时,对每个用户都创建一个Edit Session,每个用户都不能看到其他用户的编辑状态,只有用户Save Edits以后,才能够看到其他用户的编辑状态。如果多个用户同时对一个要素做了不同的操作,则会发生Conflicts,在保存编辑结果时,会出现冲突信息,则根据在Editing Options的Versioning面板上设置的Preferences来处理冲突,看应该保存哪个用户的编辑结果; (2)如果是子版本和父版本的编辑发生冲突,则在Reconcile的时候会出现冲突信息,用户可以手动去解决冲突;如果用户正在查看的版本又被提交了新的内容,则用户只有Refresh以后,才能看到更新以后的内容。ArcGIS 9.2产品推出以后,Geodatabase部分发生了比较大的变化。本次讲座介绍的均是9.2的Geodatabase和ArcSDE的功能。 在产品组成方面:9.1版本中,Geodatabase包括两种:Personal Geodatabase和ArcSDE Geodatabase,其中前者是将空间数据存储在Access中,后者是将数据存储在Oracle,Informix,DB2,SQL Server中 。而9.2版本中,新推出了File Geodatabase,并且在ArcSDE Geodatabase部分,变成了三种类型:ArcSDE Personal Geodatabase,ArcSDE Workgroup Geodatabase,ArcSDE Enterprise Geodatabase。其中前两种是9.2新推出来的产品,是将空间数据存储在SQL Server Express中(详细介绍可见正文),而第三种就是9.1版本的ArcSDE Geodatabase,是将空间数据存储在Oracle,Informix,DB2,SQL Server。 在功能方面:本讲座涉及的功能均为9.2的功能,其中9.1具备的功能包括:Versioning Editing(版本化编辑),Working With a Geodatase Using SQL(支持的数据库仅为Informix和DB2 ),离线编辑(与9.2的空间数据复制中的Check In/Check Out相同)。值得注意的是,9.1版本对存储在ArcSDE中的空间数据只提供版本编辑功能,到了9.2才增加了Non Version(非版本化编辑)功能,以及Registered as visioned with the option to move edits to base(不完全版本化编辑)功能。时间数据归档实际上是将空间数据库的所有变化都保存下来,记录其变化的时间和变化后的状态,并且提供工具访问某一时刻或者某一时间段的数据库状态,还提供了分析工具。时间数据归档功能是在ArcInfo和ArcEditor中提供的,针对的是完全版本化的数据。在已有的Transactional Version的基础上,Geodatabase Archiving增加了新的Historical Version。用户既可以连接到Transactional Version,也可以连接到Historical Version。用户可以利用Transactional Version来实现数据的编辑,而Historical Version使得用户能够展示数据在某一时刻或者时间段的状态,并且该状态是只读的。在连接一个数据库的时候,可以选择是连接Historical Version还是Transactional Version,并且还可以通过Change Version工具来进行修改。对于Historical Version的查询是基于Archive Class,而对于Transactional Version的查询是基于Base表和Delta表。 时间数据归档是将所有针对空间数据库的Default版本的变化都保存下来,在Archive Class中存储和管理。当开始创建归档时,首先在数据库中创建Archive Class,它是对Default版本的完全拷贝,具备相同的Schema,但是增加了3个属性,其中gdb_from_date表示数据库某个状态的开始时间,gdb_to_date表示数据库某个状态的结束时间,gdb_archive_oid用来唯一标识档案类的某行记录。当Default版本变化以后,在Archive Class中增加一条记录,保存Default版本变化后的状态,以及该状态的存在时间段。 在数据归档中提供了多个工具以实现时间数据库的浏览和分析,其中History Viewer 工具条用于浏览空间数据库变化的时间系列中某一时刻的状况,可以通过Marker选择,也可以通过Date/Time选择;Historical Marker Manager用于创建,修改和查询Markers,其中Markers是将数据库的变化时间用一个有意义的名字表示,例如用户在2005年5月1日,将数据库中的地块A删除,那么在档案类中可以将2005年5月1日这个时间用“地块A被删除”这种描述性的信息来命名,使得用户能直观理解时间所代表的含义,在History Viewer Tool中,通过点击“地块A被删除”,就可以察看2005年5月1日的数据库状态;还包括将Archive类添加到ArcMap中的命令。因为在ArcCatalog和ArcMap中,用户是无法直接浏览和分析Archive Class的,必须要借助ArcMap中的命令添加,可以实现查询,以及通过符号化来显示事物随时间的变化轨迹。 Archiving 能够支持完全的Geodatabase数据模型,独立的Feature Classes、Feature Datasets、Tables、Relationship、Network Topology都能够实现Archiving。 注意: (1) 一旦数据集注册为“Registered with moving edits to base ”,则不能实现Archiving,必须将数据集Unregistered,然后再“Registered as versioned without the option to move edits to base”; (2) 仅仅对具备Own权限的Datasets或者Classes进行Archiving; (3) 在开始Archiving时,原始Class的Indexed也将创建; (4) 能够通过点击Archiving的Properties查看数据的档案; (5) 对Archive Class类的命名规则是在原始对象类的名称后加“_H”,例如Road_H; (6) 利用ArcCatalog不能查看Archive Class,但是在ArcMap中通过Add Historical Archive命令把Archive Class添加到ArcMap中浏览和分析; (7) 为了更好的使用Archive Class,应该定期更新Database Statistics; 当对Versioned Database开始Enabling Archiving时,则创建Archive Class,并采用两个字段gdb_from_date,gdb_to_data来记录变化时间。有两种时间Valid Time和Transactional Time,其中Valid Time是对应真实世界的变化发生时间,而Transactional Time则是将变化记录到数据库的时间,是由系统自动记录的。ArcGIS采用Transactional时间以记录变化保存和提交到Default版本的时间。这样就会产生不一致的问题。 一旦开始Archiving ,Default Version中的所有Row都被拷贝到Archive Class中,并且所有来自原始数据的Row都用相同的Timestamp标记。Gdb_from_date字段是用开始Enabling Archiving操作的时间来记录的,而gdb_to_date字段是记录为12/31/9999。如果一个对象的gdb_to_date是12/31/9999,表示其属性与Default版本的状态是相同的。一旦数据被编辑,保存并提交到Default版本以后,Archive Class会自动更新。当对数据库中的某个要素Update的时候,提交到Default版本后,该要素的Row的gdb_to_date将变成提交变化的时间,同时增加一行,将其gdb_from_date改为提交变化的时间,而将gdb_to_date改成12/31/1999。一旦要删除一个要素,则将该要素的属性gdb_to_date改成提交变化的时间。对数据库的Archive都是在一个独立的Database Transaction中进行的,保证编辑结果可以回退。 当Disabling Archiving时,可以选择不删除相关的Archive Class,将其保存为具备From和To字段的Temporal Table,可以用来实现时间动画、动画图表和追踪分析,也可以选择删除Archive Class。在Unregistered as Versioned之前,必须要将数据集Disable Archive。在Archiving Enabled期间删除要素集或者要素类,将保存Archive Class。数据库复制的几种常见方式 有三种分发数据的方法:()Copy和Paste:这种方法能够实现数据的分发以及更新,但是不能保证数据完全更新,并且无法保证数据库的同步;()Geodatabase Replication:能够在两个或者多个Geodatabase之间实现数据的复制与同步。Geodatabase Replication是建立在版本化数据的基础上的,支持拓扑与网络等完全的数据模型,并且能够在不同类型的数据库之间实现数据的复制与同步,例如Oracle与SQL Server之间;并且还支持在联网和非联网的方式下实现,在支持本地数据库连接的基础上,还支持通过Internet 所获得的GeodataServer对象;(3)DBMS复制:能够实现数据的复制与同步,要求数据库之间必须是直接连接的,不支持跨类型的数据库,不支持拓扑、网络等高级数据模型,并且更新的是所有的版本,而Geodatabase Replication只针对特定的版本。 分布式数据库的多种应用场景 Geodatabase Replication是在ArcInfo和ArcEditor中提供的 (1)Replica Tree Geodatabase Replication能够用于创建复制树,允许企业在层状机构中间分发数据,每个下级部分获得的是与自己业务相关的一部分数据,而最上级机关负责管理所有的数据。(2)Central Hub 为了使得某些操作能够快速进行,可以将中心Geodatabase作为一个Hub,其它地方对中心数据库复制一份,用于数据编辑,然后将编辑的结果同步到中心数据库中。 (3)Mobile Users 将中心数据库的一部分拷贝到移动设备上,拿到野外进行离线编辑,最后连接到中心数据库,利用移动设备上的数据来更新中心数据库。(4)Contractors 能够将中心数据库中的数据复制下来,作为产品卖出,每个一段时间

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论