摘要:本文适用于GIS管理人员和数据库管理人员。文中对企业级地理数据库进行了总体介绍,内容包括其主要特征、结构体系和实际运行等。

http://www.gissky.net/Article/1403.htm

 

 

图1:企业级Geodatabase的层次划分

    地理数据库是ArcGIS自带的数据格式。它可以被看做是一个数据存储容器,定义了ArcGIS中的数据如何被存储、访问和管理。地理数据库这个词结合了地理(空间数据)和数据库(尤其是关系型数据库管理系统,即RDBMS)。ArcGIS 9.2包含三种地理数据库:基于Microsoft Access的个人地理数据库,文件地理数据库和ArcSDE地理数据库。

    个人地理数据库和文件地理数据库是为个体用户和小型项目设计的。ArcSDE地理数据库具有可扩展性,专门为从中等级别到企业级应用这样的较大规模应用设计的。这些地理数据库均依赖于ArcSDE技术。我们可以将ArcSDE地理数据库分为三类(按功能从小到大排列):个人地理数据库(ArcSDE Personal),工作组地理数据库(ArcSDE Workgroup)和企业级地理数据库(ArcSD Enterprise)。本文主要介绍ArcSDE的企业级地理数据库。

了解企业级地理数据库的体系结构

    从概念上讲,一个企业级地理数据库可以看做是一个多层结构:通过在应用层(比如ArcGIS软件)上叠加一个数据存储层(比如RDBMS软件),可以在应用中提供更先进的逻辑和行为方法。应用层可以进一步分为两个部分:ArcObjects和ArcSDE技术。在企业级地理数据库中,管理地理数据的任务由ArcGIS和所使用的RDBMS共同完成。

    在数据存储层,RDBMS软件提供了一个简单而正规的数据模型来存储和管理表格中的信息。在RDBMS中,企业级地理数据库的图表以ArcSDE Repositary这样一种表集的形式得到了延续。与数据存储和检索相关的部分是由地理数据管理中的简单表格和特定方面来实现的,比如基于磁盘的存储、属性类型的定义、查询处理以及多用户事务处理,这些都是由RDBMS来运行的。目前ArcGIS支持IBM的DB2、Informix,Oracle,和Microsoft SQL Server平台。在9.3版本,PostgreSQL也会被支持。

    ArcSDE技术提供了中间件。在ArcGIS 9.2之前,ArcSDE是一个独立的软件产品。在ArcGIS 9.2中,ArcSDE被整合到了ArcGIS Desktop和ArcGIS Server中,形成了现在的ArcSDE技术。作为地理信息系统的客户端与RDBMS之间的网关,ArcSDE为空间数据服务,并确保了RDBMS对数据的访问和管理。ArcSDE技术是由以下几个组件联合实现的:可执行文件的目录,数据库(即ArcSDE库)中的一组表格和存储程序,以及可选择的服务。后面会对这些组件进行详细的说明。
表名
 功能
server_config  包含ArcSDE服务器的参数和数值,用于定义ArcSDE的服务器如何分配存储空间。服务每次启动时该表格都会被读取一次。在ArcSDE安装完成后,它的目录将会被写入名为giomgr.defs的文件中。
dbtune 在地理数据库中列出的要素类,栅格数据集,拓扑和网络等数据对象的配置关键字。配置关键字主要用于数据加载和定义数据集如何在地理数据库中存储。在企业级地理数据库中,地理数据库管理员可以使用一个名为dbtune.sde的文件来管理配置关键字。
table_registry  管理所有已登记的企业级地理数据库的表格,包括所有地理数据库系统表格和在地理数据库中注册的数据集(比如要素类和栅格数据集)。
Layers 维护地理数据库中每个要素类的数据。此信息有助于建立和维护空间索引,确保适当的shape类型,并保持数据的完整性。
raster_columns  维护地理数据库中每一栅格数据集中的数据,并保证栅格数据集与其辅助表格之间的联系。


 图2:ArcSDE库中的关键表

    ArcSDE技术提供的基本功能包括以下几方面:

在RDBMS中存取简单的几何要素
支持RDBMS中原始的空间数据类型(如果本地RDBMS可用)
保持空间数据的完整性
提供多用户编辑环境(即版本)
支持复杂的GIS工作流和长事务处理
集成地理空间数据与其它信息技术

    ArcObjects位于应用层的最上端,它实现了地理数据库的应用逻辑。其中的这些与平台无关的软件组件都是由C++编写的,它们为地理信息系统的应用提供服务:在桌面端采用胖客户端,在服务器端采用瘦客户端。向地理信息系统的客户端(例如ArcGIS Desktop)中加入这种技术组件,可以实现更多更复杂的对象行为,并对存储在RDBMS中的点、线、面等简单对象实现完整性约束。换句话说,ArcObjects是在要素图形上实现其行为的。要素类、要素数据集、栅格目录、拓扑、网络以及地形都是地理数据模型中的地理空间数据元素:这些简单空间要素存储在RDBMS中,并由ArcObjects提供的应用逻辑来实现GIS行为。

    企业级地理数据库的这三个结构层是从概念层次定义的。对于大多数终端用户来说,利用企业级地理数据库的结构层开展工作是很简单、清晰的过程。GIS管理者和数据库管理员可能仅在安装、配置和维护企业级地理数据库时才希望直接操纵这些层结构。


本篇文章来源于 GIS空间站 转载请以链接形式注明出处 网址:http://www.gissky.net/Article/1403.htm

企业级地理数据库的能力
 

 

图3:两种与企业级地理数据库连接的方法:通过应用服务器连接或或直接连接

    企业级地理数据库是为大型系统设计的,可以按比例任意伸缩,支持任意数量的用户,并可以在任何规模和配置的电脑上运行。为了提高性能并支持大规模、连续的GIS数据集,企业级地理数据库充分利用了下层RDBMS的架构结构。RDBMS具备可扩展性、可靠性、安全性、备份和数据的完整性等性能以支持GIS数据管理。除了支持多用户同时存取相同的数据外,企业级地理数据库还可以与机构中现有的IT系统进行集成。

    ArcSDE技术与上述性能相关的部分在后面会有具体描述。

版本

    版本的引入,使得ArcSDE地理数据库能够在保存数据库完整性的同时,管理和保持多种状态。版本是ArcSDE地理数据库默认的编辑环境,并可以在对单独的要素和对象修改、添加或注销时,明确记录它们的状态(即版本)。它支持多用户同时访问和编辑同一数据,并提供了对长事务管理的支持。简单的查询可以用来检视或者处理任一特定时刻的状态,也可以看到某一用户当前的编辑内容。

非版本编辑

    非版本编辑,相当于一个标准的数据库事务。该事务在ArcMap编辑功能的会话范围内进行操作,数据源可以此过程中直接被编辑。非版本编辑的过程与版本编辑会话的区别在于前者不需要在其它表格中储存变化。

地理数据库的复制

    在地理数据库被复制以后,数据在某种程度上将会分布到两个或更多的地理数据库中,以实现与数据同步更新。该过程建立在版本环境的顶端,支持包括拓扑和几何网络在内的地理数据库的所有数据模型。在这个异步模式中,复制是松耦合的,这就意味着每个复制出的地理数据库均可独立工作,并仍与其它被复制的地理数据库保持同步。

    地理数据库的复制是在ArcObjects和ArcSDE技术层完成的,因此涉及到RDBMS的部分可能有所不同。地理数据库的复制可以在已连接和未连接的环境中进行,也可以在本地的地理数据库连接和地理数据服务器对象(通过ArcGIS Server)上进行,这使得我们能够通过互联网访问地理数据库。

历史存档

    当一个数据集被激活后,通过保存事务历史信息为附加存档类的方式,历史存档将会获取企业级地理数据库中默认版本中所有的数据变化。为了记录数据库的变化及时间,数据的变化会被保存或张贴到默认版本,而ArcGIS会选择适合的时间来完成该事务。

安装一个企业级地理数据库

    安装和配置一个典型的企业级地理数据库分为两个阶段。在第一阶段,企业ArcSDE软件将会安装在服务器上。第二阶段(即ArcSDE安装后的配置)的工作包括以下四步:

1. 地理数据库管理用户创建或配置一个数据库。通常情况下,此用户被命名为sde。对于基于SQL Server的企业级地理数据库,此用户也可以被命名为dbo(即数据库所有者),而不是sde;
2. 用ArcSDE库填充数据库;
3. 授权ArcSDE服务器;
4. 创建ArcSDE服务(可选)。

    对于Windows操作系统,ArcSDE安装后的配置可以使用向导进行。此外,还可以通过手动执行ArcSDE命令的方式来进行。在配置过程中,由于所使用的RDBMS和操作系统的不同,可能还需要指定其它的一些参数。在企业级地理数据库创建之后也可以对其进行自定义,例如可以利用数据库管理工具来创建用户、模式和索引等。

企业级地理数据库的组成部分

    安装一个典型的企业级地理数据库包括三个主要组成部分:ArcSDE的主目录,ArcSDE库和ArcSDE服务。

ArcSDE的主目录

    在服务器上安装ArcGIS Server的ArcSDE组件之后,ArcSDE的主目录就被创建了。当受到名为%SDEHOME%的环境变量的触发时,这个目录就会在服务器操作系统中被引用。这个目录包含ArcSDE命令行的可执行文件、ArcSDE的配置文件、地理编码和语言支持文件、日志文件(包括ArcSDE服务器问题的疑难解答)、帮助文档以及一些实例。

    ArcSDE的命令行可执行文件是一个二进制文件的集合,在地理数据库管理员的命令提示符下,ArcSDE的命令行可执行文件可以进行创建、配置、管理和监测企业级地理数据库和ArcSDE的服务。ArcSDE的命令行可执行文件包括一套命令,用于在企业级地理数据库的ArcSDE技术层面上控制数据的导入和输出。

ArcSDE库

    在ArcSDE配置过程中,内部系统表格和存储程序被安装在了RDBMS中。其中ArcSDE配置过程的第一步中创建的地理数据库管理用户享有对它们的拥有权和管理权。它们由ArcGIS和RDBMS通过存储程序在内部进行管理,而不能手动修改。

    ArcSDE的库表格可分为ArcSDE的系统表格和地理数据库系统表格(即系统表格加上前缀GDB_)。ArcSDE的系统表格在ArcSDE技术层面工作,其中包括了ArcSDE的基础元数据。ArcSDE的系统表格还可以用来存储几何要素和栅格数据,并管理版本环境。地理数据库系统表格在ArcObjects层面工作,用来存储地理数据库的行为信息及拓扑、网络和域的功能信息。这两类表格共同形成了企业级地理数据库的框架。

    企业级地理数据库管理员应熟悉图2中列出来的关键的ArcSDE库表格。

ArcSDE服务

    ArcSDE服务是存在于ArcSDE服务器上的一种连续的服务,这种服务依赖于RDBMS,通常被称为giomgr进程(地理输入/输出的缩写)。该giomgr进程支持应用服务器与企业级地理数据库的连接。

    ArcSDE服务在专用端口监听客户端连接的请求,并帮助客户端连接到地理数据库。一个典型的企业数据库设备包含相关的ArcSDE服务,当然,如果该ArcSDE服务与企业级地理数据库不是直接连接,那么ArcSDE服务就不是必需的。

客户端连接的类型

    客户端通常会通过使用TCP/IP协议的网络与企业数据库联系,并通过两种方式与企业数据库连接:应用服务器连接和直接连接。

应用服务器连接

    这种传统的客户端连接方法使用ArcSDE服务来监听客户端的连接请求。当一个客户端应用程序,如ArcGIS Desktop,请求连接到企业级地理数据库,ArcSDE服务将会启动一个名为gsrvr(地理服务器的缩写)的进程,并在客户端和地理数据库之间提供一个专属连接,然后ArcSDE的服务继续监听连接请求。

    地理数据库的连接基于提交的用户名和密码,而对数据集的访问则取决于地理数据库管理员为用户分配的访问权限。在客户端关闭应用程序,并断开连接之前,gsrvr进程将会一直同地理数据库保持连接。这种连接方法通常被称为三层连接法,因为它包含了客户端应用程序、地理数据库和giomgr/gsrvr进程。在这种方法中,大部分的工作都是在服务器端完成的。

直接连接

    使用直接连接,客户端可以不使用ArcSDE服务而直接连接到企业级地理数据库。客户端和地理数据库之间的通讯是通过ArcSDE直接连接驱动完成的,所有这些都没有通过ArcSDE服务完成,而是在客户端实现的。客户端机器必须为网络连接进行配置。

    ArcSDE的直接连接驱动是同整个ArcGIS产品一同被自动安装的,如ArcView 3.x的数据库访问扩展,ArcIMS,ArcInfo工作站,MapObjects 2等。因为应用程序是由ArcSDE C API(一种ArcSDE的开发式API)建立的,所以ArcSDE直接连接驱动需要被应用程序允许后才可以实现其功能。

    直接连接驱动部分与ArcSDE服务是由相同软件代码建立的。不同的是,直接连接驱动是由动态链接库文件建立的,并在客户端应用程序上运行;而ArcSDE服务是以可执行程序的方式安装的,在ArcSDE服务器上运行。前者的连接方式通常被称为两层连接,因为它只包含客户端应用程序和地理数据库。许多应用服务器连接方式中原本在服务器上的工作现在转移到了客户端予以实现。

    当需要ArcSDE服务器来处理大部分ArcSDE进程时,一般使用应用服务器连接方法。当客户端的机器有足够的资源来运行这些ArcSDE的进程时,可以使用直接连接,因为直接连接方式可能会带来网络堵塞。这两种连接方式可以以任意组合和配置使用在同一企业级地理数据库上。

结论

    企业级地理数据库是使用ArcGIS Server构建大型GIS的基础。它综合利用ArcObjects组件、ArcSDE技术和RDBMS,在ArcGIS平台下定义数据是如何被存储、访问和管理的。从概念上来说,它是集中存储GIS数据的场所。不过,它也可以实现和配置许多的功能。

    在处理空间数据方面,企业级地理数据库可以应用先进的业务规则和关系,定义先进的地理关系模型,比如拓扑和网络;企业级地理数据库还可以提供多用户的访问和编辑环境。拥有这些功能,GIS数据库就得以维持其一致性和精确性,从而使企业级地理数据库中的空间数据得以发挥出它们最大的功效。


本篇文章来源于 GIS空间站 转载请以链接形式注明出处 网址:http://www.gissky.net/Article/1403_2.htm

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐