【ArcGIS 10.5 产品白皮书】第五章 ArcGIS平台功能模块---地理数据库

0
分享 2017-04-14
1. 介绍

GIS作为一个以地理为核心的信息系统技术,使得我们的工作得以改善,能够更好的进行决策,可以节省成本、时间和资源,并且通过地理可视化手段让我们的信息沟通变得更加有效。

地理数据库技术一直以来都是ArcGIS的基础技术。为充分使用ArcGIS的全部功能则需要把数据存储在Geodatabase当中。Geodatabase是一个综合性的信息模型,它可以支持存储几乎任意类型的数据,例如矢量数据、属性、影像、地形和3D对象。存储这些类型的数据时,还可以定义它们的行为,例如子类、域、属性规则、连接规则、拓扑规则,从而可以保证数据的完整性。

从最初级的层次上讲,ArcGIS Geodatabase即是存放在同一位置的各类型地理数据集的集合,存放位置可以是同一系统文件夹,同一微软Access数据库或者同一个多用户关系型数据库管理系统(DBMS,例如Oracle,Microsoft SQL Server,PostgreSQL,Informix,Netezza,或者IBM DB2,达梦数据库)。Geodatabase的规模各异,小至基于文件构建的单用户数据库,大至可被多人访问的工作组级,部门级和企业级Geodatabase。

但是Geodatabase不仅仅是数据集的集合这么简单,“Geodatabase” 这个术语在ArcGIS中具有多重的含义:

· Geodatabase对于ArcGIS来说是一种本地数据结构,同时也是用于编辑和数据管理的主要数据格式。尽管现在ArcGIS能够处理各种地理信息系统(GIS)文件格式的地理信息,但是它最初是为了处理Geodatabase数据格式,并利用其特性而设计的。

· Geodatabase是地理信息的物理存储方式,并主要保存在一个数据库管理系统或者文件系统中。当您需要访问和处理你的数据集实例时,您既可以用ArcGIS直接完成,也可以用SQL语句通过数据库管理系统来完成。

· Geodatabase拥有一套全面的信息模型来表达和管理地理信息。这套模型主要是通过一系列包含要素类,栅格数据集以及属性值的表来实现的。除此之外,高级的GIS数据对象中还添加了GIS行为、用以确保空间完整性的规则以及处理众多空间关系(包括核心要素数据、栅格数据以及属性数据间的关系)的工具。

· Geodatabase的软件逻辑为ArcGIS提供了一套通用的应用逻辑结构,该逻辑结构能够用于存储、处理各种文件类型和数据类型的地理数据。覆盖范围不仅包括Geodatabase数据,对于shapefile、计算机辅助制图(CAD)文件、不规则三角网(TIN)、格网、CAD数据、栅格影像、地理标记语言(GML)以及大量的其他地理数据源都有所支持。

· Geodatabase使用事务模型来管理GIS数据工作流。

2. GDB类型介绍

随着新一代的Web GIS 推出,ArcGIS 10.5支持的数据库类型也越来越丰富多样。



地理数据库是用于保存数据集集合的“容器”,它有以下六种类型:

1)文件地理数据库。在文件系统中以文件夹形式存储。每个数据集作为一个文件进行存储,该文件大小可扩展至1TB(还可以选择将文件地理数据库配置为存储更大的数据集)。文件地理数据库可跨平台使用,还可以进行压缩和加密,以供只读和安全使用。

2)个人地理数据库。所有的数据集都存储于Microsoft Access数据文件内,该数据文件的大小最大为2GB。整个个人地理数据库的存储大小被有效地限制为介于250和500 MB之间,并且只在Windows上提供支持。

3)ArcSDE 地理数据库。使用Oracle、Microsoft SQL Server、IBM DB2、IBM Informix 、Netezza,Dameng(10.4版本开始支持Dameng)或PostgreSQL(10.2版本开始支持PostgreSQL9.2)存储于关系数据库中。这些多用户地理数据库需要使用ArcSDE,在大小和用户数量方面没有限制。如果想要在地理数据库中使用历史存档、复制数据、使用SQL访问简单数据或在不锁定的情况下同时编辑数据,则需要使用ArcSDE地理数据库。

4)ArcGIS 10.5 新增云存贮支持的类型:

· 亚马逊云服务存储(Amazon Web Services storage);

· 微软云服务存储(Microsoft Azure storage)

5)大数据文件共享,大数据文件共享是专门为ArcGIS GeoAnalytics服务器提供大数据分析数据的存储,大数据共享文件包括三种类型:

· File share—A directory of datasets.

· HDFS—An HDFS (Hadoop Distributed File System) directory of datasets.

· Hive—Metastore databases.

6)ArcGIS Data Store

ArcGIS Data Store是一个独立的应用程序,主要用于托管 Portal for ArcGIS 的数据图层,是新一代的Web GIS系统的数据存储部分。ArcGIS Data Store给Web GIS 平台带来了新的功能的数据支持。随着大数据时代的来临,单一的数据库已经不能满足现代业务的种种需求,多数据库混合已经成为新趋势。ArcGIS Data Store有三个类型,满足了不同数据类型的需求,不同的应用场景,不同的数据模型,采用专门的数据库类型,比如大量的托管服务,三维,矢量大数据分析,实时时空大数据分析,以及Insights for ArcGIS等就用到的ArcGIS Data Store 不同类型的数据库。



2.1. 文件地理数据库和个人地理数据库

文件地理数据库和个人地理数据库是专为支持地理数据库的完整信息模型而设计的,它包含拓扑、栅格数据集、几何网络、Terrain数据集、地址定位器等,ArcGIS Desktop Basic、ArcGIS Desktop Standard和 ArcGIS Desktop Advanced的所有用户可免费获取这两种地理数据库。单用户可以对文件地理数据库和个人地理数据进行编辑,这两种地理数据库不支持地理数据库版本管理。使用文件地理数据库,如果要在不同的要素数据集、独立要素类或表中进行编辑,则可以同时存在多个编辑器。

文件地理数据库是在ArcGIS 9.2中发布的地理数据库类型。其旨在执行以下操作:

· 为所有用户提供可用范围广泛、简单且可扩展的地理数据库解决方案。

· 提供能够跨操作系统工作的可移植地理数据库。

· 通过扩展可处理非常大的数据集。

· 性能和可扩展性极佳。例如,要支持包含超过3亿个要素的单个数据集,并支持可扩展为每个文件超过500 GB(且可获得极佳的性能)的数据集。

· 使用性能和存储能力都得到优化的高效数据结构。文件地理数据库所使用的存储空间约为shapefile和个人地理数据库所必需的要素几何存储空间的三分之一。文件地理数据库还允许用户将矢量数据压缩为只读格式,以进一步降低存储要求。

· 在涉及属性的操作方面优于shapefile,数据大小限制可进行扩展,可使其超出shapefile的限制。

自从个人地理数据库最初在ArcGIS 8.0版本中首次发布以来,ArcGIS平台一直在使用个人地理数据库,该地理数据库使用了Microsoft Access数据文件结构(.mdb文件)。它们支持的地理数据库的大小最大为2GB。不过,在数据库性能开始降低之前,有效的数据库大小会较小(介于 250 和 500 MB 之 间)。个人地理数据库只能在Microsoft Windows 操作系统下使用。另外,ArcGIS 10.1以及以后版本不再支持基于个人地理数据库来发布服务,ArcGIS 10.2版本支持SQlite数据库,这是一个非常棒的功能,对于SQlite数据库的支持,可以让用户在移动设备和桌面软件中随时对空间数据进行迁移,但是SQLite数据库中的空间数据不能作为要素服务来发布。

使用文件地理数据库能够实现数据库大小的可扩展性,这样可大幅度提高性能并可跨平台使用。文件地理数据库非常适合处理用于GIS投影的基于文件的数据集,非常适合个人使用以及在小型工作组中使用。它具有很高的性能,在不需要使用DBMS的情况下能够进行很好的扩展以存储大量数据。另外,还可跨多个操作系统对其进行移植。

通常,用户会针对数据集合使用多个文件或个人地理数据库,并针对他们的GIS工作同时访问这些地理数据库。

2.2. ArcSDE地理数据库

如果需要一种多个用户可同时编辑和使用的大型多用户地理数据库,则ArcSDE地理数据库可提供一种极佳的解决方案,并且可以管理共享式多用户地理数据库和支持多种基于版本的关键性GIS工作流,从而使利用企业关系数据库成为ArcSDE地理数据库的一项重要优势。

ArcSDE地理数据库适用于多种DBMS存储模型(IBM DB2、Informix、Netezza、Oracle、PostgreSQL和SQL Server)ArcSDE地理数据库使用范围广泛,适用于个人、工作组、部门和企业设置。它们充分利用 DBMS 的基础架构以支持以下内容:

· 超大型连续GIS数据库

· 多个同步使用的用户

· 长事务处理和版本化工作流

· 对GIS数据管理的关系数据库支持(为保证可伸缩性、可靠性、安全性、备份以及完整性等提供建立关系数据库的优势)

· 所有支持的DBMS(Oracle、SQL Server、PostgreSQL、Netezza、Informix,DB2)中的SQL空间类型,可以将存储空间对象的表和其他数据库表直接注册到ArcSDE地理数据库中。

· 可适应大量用户对高性能的不同要求。通过许多大型地理数据库的安装启用,我们发现在将GIS数据所需的大型二进制对象移入和移出表格时DBMS的效率极高。此外,与基于文件的GIS数据集相比,GIS数据库的容量更大且支持的用户数量也更多。

注:达梦数据库支持直连使用。

2.3. 三种类型的地理数据库比较:


说明

如果仅仅从GDB的类型上来介绍Geodatabase可能有点狭隘,因为从ArcGIS 10.0 开始Esri不仅仅支持自己的GDB模型,同时还支持关系型数据库中自身的空间数据。

目前很多常用的关系型数据库也开始提供对空间数据的支持,用户熟知的Oracle的SDO_GEOMETRY,SQL Server的Geometry和Geography,以及开源数据库PostgreSQL的PG_GEOMETRY等,这些都是这些数据库自身的空间数据类型,但是ArcGIS 能对这些没有GDB模型的空间数据提供很好的支持,这个支持就是通过一种称之为Query Layer(查询图层)的功能进行支持,在10.2版本中还对Teradata这样的数据仓库进行支持。通过查询图层ArcGIS可以整合这些多源数据库中的数据并在ArcGIS 平台软件中进行可视化,进行分析。

注意

10.2版本的ArcGIS还通过查询图层支持IBM Netezza 7.0 和INZA2.5,对于这两个数据库,Esri提供了相应的空间包。

10.3版本的ArcGIS软件安装包中包含了Microsoft SQL Server 2012 Express。同时可以使用ArcGIS Desktop连接ALTIBASE和SAP HANA数据库以查看数据子集,可以在地图中使用这些数据和对这些数据做分析,也可以查看存储在Teradata 15.0中要素的z坐标。

3. 地理要素集

Geodatabase中的一个关键概念就是数据集。数据集是ArcGIS中用于组织和运用地理信息的主要途径。Geodatabase中包含三种主要的数据集类型:

· 要素类

· 栅格数据集

· 属性表



3.1. 要素类

要素类是具有相同空间制图表达(如点、线或多边形)和一组通用属性列(字段)的常用要素的同类集合,例如,表示道路中心线的线要素类。地理数据库中最常用的四个要素类分别是点、线、多边形和注记(地图文本的地理数据库名称)。

在10.2中,实现了一个用户强烈需求。这就是在要素类和表创建后,允许更改字段属性。但是属性的更改是依赖它们所在的数据库系统,只能更改数据库允许更改的属性,比如数据库管理系统不允许更改含有数据字段的长度,那么就不能通过ArcGIS 更改字段的长度。

3.2. 要素数据集

要素数据集是共用一个通用坐标系的相关要素类的集合。要素数据集用于按空间或主题整合相关要素类。它们的主要用途是,将相关要素类编排成一个公用数据集,用以构建拓扑、几何网络、关系类或地形数据集。

使用要素数据集将空间上相关的要素类编排成一个公用数据集,以便执行以下任务:

· 添加拓扑

· 添加网络数据集

· 添加几何网络

· 添加地形数据集

· 添加宗地结构

3.3. 栅格数据集

栅格数据集是地理数据库中一种基本数据集,通过将世界分割成在格网上布局的离散方块或矩形来表示的地理要素。每个格网单元都具有一个值,用于表示该位置的某个特征,例如温度、高程或光谱值。



栅格数据集常用于表示和管理影像、数字高程模型及许多其他现象。通常,栅格也是用于表示点、线和多边形要素的一种方法。目前,Geodatabase中用于存储和管理栅格数据的数据集类型有栅格数据集(Raster Dataset)、栅格目录(Raster Catalog)和镶嵌数据集(Mosaic Dataset)。

3.4. 属性表

地理数据库中的属性基于一系列简单且必要的关系数据概念在表中进行管理,关于属性表的基本概念:

表包含行。

表中所有行具有的各个列相同。

每个列都有一个数据类型,例如,整型、十进制数字型、字符型和日期型。

可使用一系列关系函数和运算符(例如 SQL)在表及其数据元素上进行运算。

3.5. 扩展要素类


4. GDB版本

4.1. 什么是版本

版本是整个地理数据库在某个时刻的快照,其中包含地理数据库中的所有数据集。仅ArcSDE地理数据库支持版本。版本不仅仅备份地理数据库,相反,版本及其内部进行的事务可通过系统表进行追踪。这样可隔离用户在多个编辑会话中的工作,使得用户进行编辑时不必锁定生产版本中的要素或直接影响到其他用户,且无需备份数据。利用版本化,多个用户可对ArcSDE地理数据库中的同一数据进行编辑,而无需应用锁或复制数据。

4.2. 版本实现原理

Default版本

每个ArcSDE地理数据库都具有一个被称为DEFAULT的默认版本;因此,始终会为地理数据库启用版本化。DEFAULT版本为根版本,它是其他所有版本的祖先版本。它是ArcGIS操作方式的基础部分,无需单独安装或配置。



与其他版本不同,DEFAULT版本始终存在,且不能被删除。在大多数工作流策略中,它是数据库的发布版本,表示要建模的系统的当前状态。您可以将其他版本中的变更提交到DEFAULT版本,从而逐步维护和更新DEFAULT版本。此外,您还可以像编辑其他版本一样,对DEFAULT版本直接进行编辑。

新建版本

您可通过从任意现有版本创建子版本或分支版本的方式来创建版本。您可以通过创建DEFAULT版本的子版本来创建第一个版本。创建新版本时,该版本与DEFAULT版本相同。随着时间的推移,版本将会随着对 DEFAULT 版本和新版本所做的更改而出现差异。



下面的图解表明了版本的关联方式。QA版本为DEFAULT版本的子版本,而ProjectA和 ProjectB 版本为QA版本的子版本。



示例

为了说明如何使用版本,请见市政自来水公司的一个情景。自来水公司具有存储要素的地理数据库,这些要素可表示所有供水管道、阀门、抽水机及供水系统中其他组件的当前状态。该公司需要向供水系统添加新的管线扩展。

该公司根据 DEFAULT 版本创建了名为“扩展”项目的新版本,其中包含新扩展管线的设计。但是,公司职工不确定该为新扩展管线设计 16 英寸管道还是 24 英寸管道。因此,他们根据“扩展”项目版本创建了一个版本以研究 16 英寸设计,并创建了另一个版本以研究 24 英寸设计。

他们最终发现 24 英寸的管道可以满足计划的 12 年以上的供水需求,并证明其相应的初期建设成本也是较高的。24 英寸设计得到了认可,在对其进行精度检查之后,将其提交到“扩展”项目版本。

几个月后,新管线扩展的建设工程完工。要更新数据库的已发布版本,需要对“扩展”版本进行精度审核、协调,并将该版本提交到 DEFAULT 版本。



4.3. 版本的应用

4.3.1. 同时编辑已发布的数据库

多个用户可以同时编辑同一版本,因此对于多个编辑人员来说,支持多用户编辑的最简单方法是直接编辑DEFAULT版本。



随着各个编辑人员开始编辑DEFAULT版本,在编辑会话中将自动创建临时未命名版本。只有当前编辑人员才可以访问此临时版本。当编辑人员保存其工作内容或结束编辑会话后,临时版本中记录的更改将被提交到DEFAULT版本。

· 特点:

· 此策略对简单的数据库修改支持较好,因为用户无需创建新版本即可编辑数据。这在工作单元较小或不需要长期设计方案时非常适用。

· 如果不存在冲突,保存的编辑内容将直接提交到DEFAULT版本。

4.3.2. 多个项目

如果要管理多个项目或工作指令,您需要更加结构化的工作流管理方法。对于涉及多个编辑会话并持续数日、数周或数月的独立工作单元,可以在不影响DEFAULT版本的情况下对其进行维护。例如,这些独立的工作单元可以是高速公路改造方案、安装新电话服务或者正在进行的煤气管道维护项目。



当启动某个工作指令或项目时,会创建一个DEFAULT版本的子版本。一个或多个编辑人员可以在此版本中工作,直到该工作指令或项目完成。

可以限制用户对DEFAULT版本的访问权限,以强制执行此工作流并确保DEFAULT版本不会被修改。

如果只读用户不需要在更改被提交到DEFAULT版本后立即看到更改,则可以从DEFAULT 版本创建一个受保护的静态版本供这些用户使用。

特点:

· 简单易用:每个工作单元都是按版本在逻辑上分离的。

· 支持跨多个编辑会话的长期事务以及创建替代设计,允许编辑人员在不影响生产数据库的情况下制定计划。

· 从DEFAULT版本创建新版本可保护数据库的生产视图免受无意修改的破坏。各个工作项目会在完成后与生产数据库集成。

· 支持批处理协调/提交过程。

4.3.3. 多个含子项目的项目

与同时编辑或多个项目方法提供的工作流结构相比,复杂项目需要更加精细的工作流结构。这些项目可进一步分为多个功能或地理单元,根据这些单元将制定出更复杂的版本化等级。例如,一个设计并新建购物中心的项目可能具有几个不同的建造阶段,它会细分为东区和西区或按建造活动细分,如建筑、公共设施安装或景观美化。



对于涉及不同团队和多个独立工作单元的大型项目,多层版本树是组织工作流的有效方式。负责同一项目不同方面的团队可以创建自己的版本来保存更新内容的私有视图。项目完成后,各个版本会被协调并提交回 DEFAULT 版本,并成为已发布数据库的组成部分。

特点:

· 支持复杂项目

· 支持跨多个编辑会话的长期事务

· 支持自动批处理协调与提交过程

4.3.4. 分阶段的项目

许多项目要经过一组预定或规定的多个阶段,其中每个阶段都需要工程设计、管理或法律批准,才能进入下一阶段。例如,在公共设施领域,常规项目阶段包括运作、计划、接受、施工和完工。这种特别过程本质上具有周期性:最初会将工作指令指定给工程师,随着项目经过各个阶段会对其进行修改,最后将其与生产数据库完全集成。

在此方法中,会为此过程的每个阶段都创建一个版本:初期设计或计划版本、批准版本和施工阶段版本。随着项目逐步向前推进,每个阶段都会经过审核和批准,然后被下一版本取代,直至达到最后一个阶段并完成该阶段。可以根据需要保存较早版本作为历史参考或者删除。

项目完成后,可以立即对构造出的版本进行协调并直接提交到DEFAULT版本,而不必协调与提交谱系中的先前版本。



特点:

· 此方法适用于经过一系列阶段的项目,其中各个阶段必须被隔离为不同的工作单元。

· 与其他所有多层配置相同,此工作流允许编辑人员在不影响生产数据库的情况下制定计划和设计替代方法。

· 更改可以直接提交到DEFAULT,这将消除按版本树逐级向上提交更改到DEFAULT版本所需的开支。

4.3.5. 存档

许多项目的关键要求是在数据库随时间改变的同时保存数据库的各种状态。地理数据库可能需要支持的一些典型查询包括:

数据库在指定时间是什么样的?特定要素是如何随时间变化的?

假定在某个日期从数据库中移除了一个要素,在已删除要素的之前位置当前存在哪些要素?

保存历史记录的一般要求是保留DEFAULT版本的存档,因为它通常代表已发布的数据库版本。对DEFAULT进行编辑或者从其他版本协调更改并提交到DEFAULT都会使DEFAULT发生更改。可以将地理数据库设置为自动记录这些更改。地理数据库内置此功能;不需要任何其他数据建模或应用程序自定义即支持自动存档功能。

某些项目需要存档除DEFAULT以外的版本。由于版本表示在其被创建时父版本的状态,您可以创建一个只记录父版本在特定时间点状态的版本。例如,可以根据设计版本创建新的历史版本。当设计版本被协调并提交到父版本时,将保留历史版本作为设计版本在特定时间点的记录。



4.3.6. 分布式数据管理

某些项目需要两个或多个远程办公室处理相同的数据。每个办公室都需要对数据库进行本地访问,因此会各自创建一个数据库副本。在一个地点对数据进行更改时,更改也必须应用到其他地点的数据。要保持数据库各副本间的同步,站点可以定期相互传输更改。此功能称为地理数据库复制。



通过复制还可以在路途中获取地理数据库的子集并进行离线编辑,这是现场维护团队的一般要求。返回办公室后,可以重新连接到网络并将更改合并回生产数据库。

对于不得不通过慢速网络编辑数据的人员,复制也是很有用的。在这种情况下,通过复制可将数据的子集提取到本地计算机,这样不必通过网络通信即可对数据进行处理。完成编辑后,可以通过网络传输更改,将其合并回生产数据库。

5. 企业级GDB

ArcGIS 10.5版本的Geodatabase支持基于以下几种数据库来构建企业级GDB:

· IBM DB2

· Informix

· Microsoft SQL Server (including SQL Azure)

· Netezza

· Oracle

· PostgreSQL

· dameng

5.1. 从ArcGIS Desktop连接数据库

通过ArcCatalog中的Database Connections节点打开Database Connections对话框,输入较少的参数就可以连接到任何支持的数据库,即便这个数据库不包含企业级空间数据库。管理员可以创建一个包含连接信息的连接文件,与其他用户分享。



同时,可以利用Geodatabase的属性对话框提供的连接设置,阻止对Geodatabase的新连接。



5.2. 通过地理处理工具连接

ArcGIS 提供的Create Database Connection地理处理工具允许我们创建数据和空间数据库连接,该工具的输入参数和Database Connections dialog一样,而且还允许我们定义连接的GDB版本,当连接空间数据库的时候和指定应用服务器连接。

5.3. 创建企业级GDB

在ArcGIS 版本中,空间数据库管理员可以使用下面的工具在一个支持的平台中创建一个企业空间数据库:

· Enable Enterprise Geodatabase:允许向数据库添加空间数据库和授权

· Create Enterprise Geodatabase:用来创建数据库或者空间数据库

5.4. 企业级GDB的管理

ArcGIS 提供了多种管理企业级GDB的途径,包括Geodatabase管理对话框和空间数据库管理工具集Geodatabase Administration Toolset,使得我们管理和创建企业空间数据库变得容易。在Geodatabase 管理对话框中提供了监控和管理用户的版本、连接、锁等信息。

5.4.1. 版本管理

在ArcGIS 中,版本管理工具已被转移到Geodatabase管理对话框中,并包含以下功能:

· 提供树状视图,可以查看版本间的关系

· 提供一个建议的版本协调顺序列表,可对选定的版本进行数据协调

· 提供版本过滤功能,包括过滤版本名称和拥有者

· 查看选定版本的属性,不用单独打开一个新的对话框



5.4.2. 查看和移除连接

在Geodatabase管理对话框中,管理员利用Connections功能查看连接到企业级GDB的用户,并且可以移除该连接。



5.4.3. 管理GDB的锁

当访问和编辑数据的时候,Geodatabase使用三种不同的锁来确保数据结构的一致性:模式、状态和版本,这些锁可以共享,不同的用户可以在同一时间持有共享锁。

在Geodatabase管理对话框中的锁标签页中,管理员可以查看企业GDB拥有什么类型的锁,以及锁的持有者,并且可以断开用户,清除锁。



5.5. 空间数据的SQL访问

你可以像访问数据库表一样使用SQL语句来访问企业级GDB中的空间数据类型及其属性,包括版本化和非版本化的数据。ArcGIS将空间数据(包括矢量和栅格)以表的形式存储在了支持的DBMS中,且定义了的自己空间数据类型及其子类类型,包括Oracle、DB2、PostgreSQL和Informix中的ST_Geometry,SQL Server中的Geometry和Geography,以及栅格数据类型ST_Raster等。同时,你也可以将DBMS的SQL空间数据类型注册到Geodatabase中来使用。

另外,ArcGIS 提供了一个新的地理处理工具Create Spatial Type,允许我们将ST_Geometry和他的子类存储类型安装到Oracle和PostgreSQL中,这使得我们不用通过Geodatabase也可以访问以ST_Geometry存储的矢量数据。

除了空间数据类型之外,ArcGIS还提供了相应的空间操作函数,包括空间关系判断函数和空间分析操作函数等等。在版本中,新增了8个用来帮助开发者获取关于企业级GDB的表信息的操作函数:

· Is_Simple:表是否参与空间数据库的功能

· Is_Versioned:表是否注册为版本

· Is_Replicated:表是否参与版本复制

· Version_View_Name:返回指定版本表的版本试图的名称

· RowID_Name:返回注册表的RoWID名称

· GlobalID_Name:返回Global ID 字段(用于参与数据库复制)

· Next_RowID:返回指定注册表row ID 字段的下一个值

· Next_GlobalID:返回指定注册表global字段的下一个值

6. 管理分布式数据

分布式数据库是指利用高速计算机网络将物理上分散的多个数据存储单元连接起来组成一个逻辑上统一的数据库。分布式数据库的基本思想是将原来集中式数据库中的数据分散存储到多个通过网络连接的数据存储节点上,以获取更大的存储容量和更高的并发访问量。近年来,随着数据量的高速增长,分布式数据库技术也得到了快速的发展,传统的关系型数据库开始从集中式模型向分布式架构发展,基于关系型的分布式数据库在保留了传统数据库的数据模型和基本特征下,从集中式存储走向分布式存储,从集中式计算走向分布式计算。

地理数据库(Geodatabase)支持数据的分布式管理,主要是指的是ArcSDE企业级数据库。

6.1. 概述

数据分布需要创建多份数据副本并在两个或更多地理数据库之间分配这些数据副本。这使人们可在位于不同位置的两个或更多办公地点处理相同的数据。

通过数据分布可以缓解服务器争用以及对中央服务器的网络访问速度慢的情况,从而提高数据可用性与性能。这有助于企业在执行编辑的用户与访问服务器以进行读取操作的用户之间实现地理数据库负载均衡。

某些移动用户或承包商需要将其地理数据库的部分数据带入现场进行编辑,要与网络完全断开连接的时间长度尚不确定,这时也需要执行数据分布。

可通过多种方式在多个地理数据库之间分布数据。

6.1.1. 复制和粘贴

某些企业已经实现了某种程度的数据分布,他们将地理数据库的副本保存在 CD 和 DVD 上,然后发送给其他办公机构。这样,这些办公机构便可处理数据、编辑数据并将更新后的地理数据库的副本发送回主办公机构。主办公机构的人员将对编辑内容进行比较和协调,以使两个办公机构的数据同步。如果通信机制安全可靠,这不失为一种行之有效的解决方案,但在很多情况下更新内容可能丢失,而且两个地理数据库很难以保持同步。

6.1.2. 地理数据库复制

地理数据库复制是通过 ArcGIS 提供的一种数据分布方法。使用地理数据库复制,可通过复制所有或部分数据集在两个或更多地理数据库之间分布数据。复制数据集后,会创建一个复本对;一个复本位于原始地理数据库,另一个相关复本被分布到一个不同的地理数据库。可以将这些复本在其各自地理数据库中发生的更改进行同步,以使一个复本中的数据与其相关复本中的数据相符。

地理数据库复制建立在版本化环境基础之上,并支持完整地理数据库数据模型,包括拓扑、网络、地形和关系等。在此异步模型中,复制为松散耦合形式,也就是说,每个复制地理数据库可以独立工作,但所有更改仍可进行同步。由于它是在地理数据库级别实现的,所以涉及的 DBMS 可以不同。例如,一个复本地理数据库可建立在 SQL Server 的基础上,而另一个复本地理数据库则可以建立在 Oracle 的基础上。

地理数据库复制既适用于在线环境也适用于离线环境。它也可以与本地地理数据库连接以及地理数据服务器对象配合使用,从而允许用户访问 Internet 上的地理数据库。

DBMS 复制

DBMS 同样具有自己的复制机制,可用于创建地理数据库数据副本并对其进行同步。

DBMS 复制指的是由存储地理数据库的 DBMS 所提供的内置复制机制。DBMS 复制并不具有地理数据库感知能力。这意味着 DBMS 并不知道数据库构造,例如关系类和几何网络。但仍可以将 DBMS 配置为通过一种受限的方式处理地理数据库数据。

DBMS 复制与地理数据库复制的比较

下面是对地理数据库复制与 DBMS 复制的比较:

地理数据库复制将同步来自特定 ArcSDE 地理数据库版本的更改。DBMS 复制与 ArcSDE 地理数据库结合使用时,会将更改应用于地理数据库中的所有版本。

地理数据库复制支持拓扑、关系和几何网络等所有高级地理数据库对象。DBMS 复制不知道如何正确复制高级地理数据库对象。

6.2. 使用分布式数据的情形

6.2.1. 复本树

地理数据库复制可用于创建复本树(与版本树相似),从而允许组织将其数据分布在层次结构中的多个地理数据库中。

例如,某些组织需要将一个组织级的地理数据库复制到不同的办事处。每个办事处拥有一份只包含适用于各自区域的复本,并可将此数据的变更传送到总部。这样,总部便可对整个范围内的最新数据执行分析。办事处内部的连接速度会很快,但办事处之间的连接速度要慢很多。总部可以将地理数据库复制到区域办事处,区域办事处也可用同样的方式将其地理数据库复制到当地办事处。



6.2.2. 中央集线器

可将复本地理数据库用作中央集线器,以便为读取者和编辑者提供服务。为保持较快的连接速度,编辑者可创建一个复本将中央集线器的数据检出,然后在执行编辑后,通过与地理数据库同步的方式将变更重新检入。

中央集线器还可用于在多个子复本之间传播变更。要将变更从一个复本移动到另一个复本,应首先将一个复本中的变更与父(或集线器)复本同步。随后,另一个子复本即可与父复本进行同步,以获得这些变更。



6.2.3. 承包商

某些组织需要将地理数据库的部分维护工作承包出去,让承包商每月提供更新。组织需要能够将承包商的变更合并进来,而不必完全重新加载数据。此外,还需要一种简单方式来只查看每月的更新部分,而不用对整个数据集执行 QA 测试。

通过向承包商发送一份用于更新的相应数据的复本,可以满足上述要求。当承包商将变更发回组织后,可将这些变更与 ArcSDE 地理数据库中维护的数据进行同步。



6.2.4. 生产地理数据库和发布地理数据库

组织需要为一组编辑者提供支持,同时也要支持具有只读访问权限的用户对系统进行访问。为满足这两组用户的需求,组织建立了两个 ArcSDE 地理数据库。一个是可由编辑者直接编辑的生产地理数据库,另一个是可由读取者访问的此地理数据库的复本。读取者可通过 ArcIMS 或 ArcGIS Server对此数据进行访问。

在这种情况下,发布地理数据库中的复本是生产地理数据库的只读副本。发布地理数据库中的数据无需进行版本化。可将复制限制为只在一个方向上发送数据。在生产地理数据库中进行所需的编辑,然后将编辑内容从生产地理数据库发送到发布地理数据库。这些编辑内容会被传输到发布地理数据库并与其中的数据进行同步,然后供读取者查看。



多组数据管理

在您的组织中,可将数据管理任务划分给多个不同的组。例如,一个组可以负责管理公共事业网络,而另一个组可以负责管理同一区域的土地基础数据。另外还有一些例子,比如说多个团队负责许多完全独立的项目。每个项目的数据集的大部分很可能来自不同的地理区域,但组织需要一个可存储所有项目的中央存储库。

您的组织可使用地理数据库复制将数据分发到各个组,从而将数据划分到相应的项目中。每个项目团队都会从 ArcSDE 中央地理数据库接收到一份所需数据的复本。随后,各个团队便可相互独立地编辑每个复本(也可能是在单独的地理位置),然后将这些编辑内容传输到 ArcSDE 中央地理数据库。反过来,对 ArcSDE 中央地理数据库所做的任何编辑也会被传输到各个项目团队的相应复本。



6.2.5. 汇集来自多个源的数据

另一个常见的复制实践就是建立一个收集数据的集中位置。采用这种建立方式的组织拥有一个中央地理数据库,用于存储来自其他办事处的数据的集合。

州办公机构和国家办公机构之间的数据分发便是这种情况的一个示例。每个州办公机构独立运作,管理着各自的数据集并定期将更新发送到国家办公机构。来自每个州的编辑内容将被同步到国家地理数据库的一个综合数据集中。在这种“子-父”单向复制配置中,国家地理数据库被指定为父角色,而州地理数据库被指定为子角色。



7. GDB资源库

7.1. 开发者 ArcObjects API

ArcObjects中的地理数据库API提供对所有类型地理数据库以及其他类型的GIS数据很好的控制,提供从简单数据创建、数据查询到高级数据集合的构建(如地理网络、拓扑等)以及高级的地理数据库功能如版本管理,数据库复制等。使用ArcObjects API,开发者不仅可以在已有的Esri产品如ArcGIS Desktop中定制功能,也可以开发独立的应用程序。

7.2. ArcSDE API

SDE API提供开发者直接控制ArcSDE地理数据库的能力。它在处理 ArcSDE与软件连接功能上与ArcObjects API有不同之处。它允许对地理数据库数据(包括图形和栅格)进行创建、访问和查询,对数据模型进行创建和修改。SQL级别的访问提供对要素类等Esri空间类型在SQL级别进行创建、查询等操作。

7.3. File Geodatabase API

File Geodatabase API提供开发者不通过ArcObjects来访问和编辑文件地理数据库的途径,这些C++ API主要针对需要访问文件地理数据库实现互操作但不具备ArcObjects许可的高级开发人员,利用它我们可以:

· ·创建文件地理数据库

· ·读取文件数据库的结构

· ·创建简单要素类的结构

· ·对文件地理数据库中的数据进行读写操作

· ·执行属性和有限的空间查询。

数据模型

在ArcGIS平台中,Esri创建了很多工业级的数据模型。学术和工业界的领导者与Esri合作创造和设计可以在GIS平台上使用的数据模型模板。这些数据模型可以在很多Esri提供服务的行业中应用,例如针对水利行业的ArcHydro模型等。

您可以访问Esri datamodel discussion forum,在那里与其他使用者一起分享您的观点、想法、问题等。

您也可以在下面网站地址中下载到很多数据模型。

<a href="http://resources.arcgis.com/co ... odels

其他资源blog、videos

关于Geodatabase还有很多其他的资源可以利用,如在线博客、视频、实用小工具等。这里有很多介绍、使用Geodatabase以及在具体行业中应用Geodatabase的文章和视频,您可以在里面找到你需要的内容,同时也可以将您的想法或者做出的成果与大家分享。

这些都可以在下面的网站地址访问到:

<a href="http://blogs.esri.com/Dev/blog ... .aspx

<a href="http://resources.arcgis.com/ga ... abase

<a href="http://resources.arcgis.com/en ... odata

0 个评论

要回复文章请先登录注册