2023年11月23日发(作者:)

目录

1.地理数据库简介

1.1 什么是地理数据库

在最基本的层面上,ArcGIS 地理数据库是存储在通用文件系统文件夹、Microsoft Access

据库或多用户关系 DBMS OracleMicrosoft SQL ServerPostgreSQLInformix IBM DB2

中的各种类型地理数据集的集合。地理数据库大小不一且拥有不同数量的用户,可以小到只

是基于文件构建的小型单用户数据库,也可以大到成为可由许多用户访问的大型工作组、

门及企业地理数据库。

1.2 地理数据库架构

地理数据库存储模型以一系列简单但核心的关系数据库概念为基础,并利用了基础数据库管

理系统 (DBMS) 的优势。地理数据集的方案、规则、库以及空间属性数据存储在简单表和

明确定义的属性类型中。该方法为存储和使用数据提供了一个正式模型。通过此方法,可使

用结构化查询语言 (SQL)(即一系列关系函数和运算符)来创建、修改以及查询表及其数据

元素。

通过查看下图具有面几何的要素在地理数据库中的建模方式,您可以了解上述操作的工作原

理。要素类以表的形式存储,通常称为基表或业务表。表中的每一行代表一个要素。shape

保存每个要素的面几何。当表中的内容(包括 shape SQL 空间类型存储时,可通过 SQL

进行访问。

然而,只是向 DBMS 添加空间类型和对空间属性的 SQL 支持并不足以支持 GISArcGIS

用多层应用程序架构,在地理数据库存储模型之上的应用程序层执行高级逻辑和行为。该应

用程序逻辑支持一系列通用地理信息系统 (GIS) 数据对象和行为,如要素类、栅格数据集、

拓扑、网络以及更多。

1.2.1 地理数据库为对象关系型

地理数据库使用在其他高级 DBMS 应用程序中的相同多层应用程序架构来实现;地理数据

库的实现不存在任何特别之处。地理数据库的这种多层架构有时被称为对象关系模型。地理

数据库对象在具有标识的 DBMS 表中以行形式保存,而行为通过地理数据库应用程序逻辑

提供。通过将应用程序逻辑与存储相分离,可支持多个不同的 DBMS 以及多种数据格式。

1.2.2关系数据库中的地理数据库存储

地理数据库的核心部分是一个标准的关系数据库方案(一系列标准的数据库表、列类型、

引和其他数据库对象)方案保留在定义地理信息完整性和行为的 DBMS 的一系列地理数据

库系统表中。这些表或者以文件的形式存储到磁盘上,或者存储到 DBMS 的数据库中,如

OracleIBM DB2PostgreSQLIBM Informix Microsoft SQL Server

明确定义的列类型用于存储传统表格属性。将地理数据库存储在 DBMS 中时,空间制图表

达(多用矢量或栅格表示)通常使用扩展的空间类型进行存储。

地理数据库包含两组主要表:系统表和数据集表。

数据集表 - 地理数据库中的每个数据集都存储在一个或多个表中。这些数据集表使用系统表

管理数据。

系统表 - 地理数据库系统表用于追踪每个地理数据库的内容。它们实质上描述的是用于指定

所有数据集定义、规则和关系的地理数据库方案。这些系统表包含并管理实现地理数据库属

性、数据验证规则和行为所需的元数据。 ArcGIS 10 开始,这些表的内部结构进行了重构。

ArcGIS 10 之前的版本中,与地理数据库方案相关的信息存储在超过 35 个地理数据库系

统表内,而在 ArcGIS 10 中则被合并为四个主表:

GDB_Items:包含地理数据库中的所有项(例如要素类、拓扑和属性域)的列表

GDB_ItemTypes:包含识别的项类型(例如表)的预定义列表

GDB_ItemRelationships:包含各个项之间的方案关联,例如要素数据集中包含哪些要素类

GDB_ItemRelationshipTypes:包含识别的关系类型(例如 DatasetInFeatureDataset)的预定

义列表

将数据集表和系统表共同用于显示和管理地理数据库的内容。例如,以基础存储格式进行查

看时,要素类只是一个包含空间列的表。但通过 ArcGIS 访问时,存储在系统表中的所有规

则将与基础数据相结合,从而使所呈现的要素类具备所有定义的行为。

1.2.3 其他表

根据使用的地理数据库类型以及用来存储该地理数据库的 DBMS 的不同,系统表集可能会

有所不同。企业级地理数据库的系统表集与文件地理数据库不同,而文件地理数据库的系统

表集又与个人地理数据库略有不同。对于企业级地理数据库,针对特定 DBMS 对地理数据

库的不同系统表进行了定义。由于用户不需要与文件和个人地理数据库中存储的不同表进行

交互,因此未作详细介绍。

1.3 地理数据库类型

地理数据库是用于保存数据集集合的容器。有以下三种类型:

1.文件地理数据库 - 在文件系统中以文件夹形式存储。每个数据集都以文件形式保存,该

文件大小最多可扩展至 1 TB。建议使用文件地理数据库而不是个人地理数据库。

2.个人地理数据库 - 所有的数据集都存储于 Microsoft Access 数据文件内,该数据文件的大

小最大为 2 GB

3.企业级地理数据库 - 也称为多用户地理数据库,在大小和用户数量方面没有限制。这种

类型的数据库使用 OracleMicrosoft SQL ServerIBM DB2IBM Informix PostgreSQL

储于关系数据库中。

2.创建地理数据库

2.1 如何创建个人数据库

创建个人地理数据库包括在磁盘上创建一个 .mdb 文件可通过 ArcGIS for Desktop 中的目

录树或使用创建个人地理数据库地理处理工具实现这一操作。

如果使用创建个人地理数据库地理处理工具,则可创建与先前 ArcGIS 版本对应的个人地理

数据库。该功能可用于与拥有较旧版本 ArcGIS 的人员共享数据,因为较旧版本的 ArcGIS

能无法打开较新版本的地理数据库。

要创建与正在使用的 ArcGIS for Desktop 客户端相同版本的个人地理数据库,请执行以下步

骤:

1.在目录树中右键单击要在其中创建新的个人地理数据库的文件夹。

2.指向新建。

3.单击个人地理数据库。

4.随即会在所选位置创建个人地理数据库。

5.为该个人地理数据库输入一个新名称,然后按 Enter 键。

2.2 如何创建文件型数据库

创建文件地理数据库包括使用 ArcGIS 在磁盘上创建一个特殊文件夹主要可通过以下两种

方式完成操作:

2.2.1 通过文件夹连接

按照以下步骤通过 ArcGIS for Desktop 在文件夹中创建文件地理数据库:

1.启动 ArcCatalog ArcMap,然后打开目录窗口。

2.在目录树中展开该文件连接。

3.右键单击要创建文件地理数据库的文件夹,指向新建,然后单击文件地理数据库。

4.随即会在所选位置创建一个文件地理数据库。

5.为文件地理数据库重命名,方法是:右键单击该文件地理数据库,选择重命名,然后输入

新名称。

2.2.2 运行创建文件地理数据库工具

创建文件地理数据库地理处理工具可用于创建与先前 ArcGIS 版本对应的文件地理数据库。

使用 ArcGIS 较旧版本的人员可能无法打开较新版本的地理数据库,在这种情况下,您可以

借此方式与这些人共享数据。

1. ArcGIS for Desktop 中打开创建文件地理数据库。

2.可以使用搜索来查找工具或者直接从数据管理工具箱的工作空间工具集中打开工具。

3.指定要创建文件地理数据库的文件夹位置。

4.输入地理数据库的名称。

5.选择文件地理数据库的 ArcGIS 版本。

6.地理数据库中的可用功能将限定于您所选择的版本。

7.单击确定以运行工具。

随即会在指定的位置创建文件地理数据库。

2.3 创建企业级地理数据库

2.3.1预备知识

在介绍创建企业级地理数据库之前,先介绍一下ArcSDE的历史以及变化过程。ArcSDE从诞

生到现在一共经历了8.x,9.x,10.x三个大版本,其中每个大版本中又包括几个子版本。从技

术角度考虑该产品实际上包括了两部分的内容,程序部分和数据库的schema部分。安装过

程也包括了这两部分,程序和数据库的schema.数据库的shema创建部分也就是大家经常说

post过程。从8.1到现在的10.4部分,程序部分发生了很大的变化(10.3开始不提供单

独的ArcSDE介质了,同时也取消了ArcSDE服务连接部分)schema创建也发生了变化(从

10.1开始使用Desktop中的工具进行创建,而不再使用ArcSDE安装介质的sdesetup命令创

建了),所有的变化可以下表。

版本 包括的子版本 是否存在ArcSDE安装流程

单独光盘 务连接

8.x 8.1,8.2,8.3

安装ArcSDE软件

后,启动Post

Schema

后,启动服务

9.x 9.0,9.1,9.2,9.3,9.3.1

10.x 10

10.1,10.2,10.2.1,10.2.2

同上

同上

Desktop

使

Create enterprise

Geodatabase

shema后,此

使

Desktop

Geodatabase,

果需要服务连接

ArcSDE的安装包

后,创建并启动

服务

10.3,10.3.1,10.4

Desktop

使

Create enterprise

Geodatabase

shema,创建

并启动

2.3.2系统需求

各个版本对数据库以及操作系统的要求都不相同,在安装之前一定要查询系统需求以保证其

满足条件,查询方法可以参考如下:

使用浏览器登录/en/help/

如果查询老的,现在还支持的版本选择

即可。

2.3.3如何创建企业级地理数据库

可以使用创建企业级地理数据库地理处理工具或 Python 脚本在 Microsoft SQL Server

PostgreSQL 数据库管理系统中创建数据库、地理数据库管理员和企业级地理数据库。还可

以使用此工具在 Oracle 数据库中创建默认表空间、地理数据库管理员和企业级地理数据库。

下面以Oracle数据库为例,详细解释一下其中的一些参数。

Instance:填写IP/实例,这种方式是简易连接。也可以使用TNS name连接。

Database:对Oracle数据库而言可以不用填写。

Database Administrator:默认为sys用户。

Database Administrator Password:填写对应的sys用户的密码。

Geodatabase Administrator:第一次创建的话,必须填写sde用户。这个用户可以是在数据

库中不存在的,也可以是已经在数据库中创建好的。

Geodatabase Administrator Password:如果该用户在数据库中还不存在,则指定密码。如果

该用户在数据库中已创建,则密码必须填写正确。

Tablespace Name填写表空间的名称。如果指定的表空间在数据库中不存在,则默认为400M

大小且不可扩展,如果将该行空着,则会自动创建一个名为SDE_TBS的表空间,大小也为

400MB不可扩展。建议在Oracle中创建好表空间,指定其大小以及是否扩展等等属性,

后在该参数指定到该表空间,如下图。

Authorization File:选择ecp为后缀的授权文件。获取方法:将server的安装目录下prvc后缀

的文件后缀改为ecp

要在预先创建和已配置的 IBM DB2 IBM Informix 数据库中创建地理数据库,请使用启用

企业级地理数据库地理处理工具或 Python 脚本。

3.连接企业级地理数据库

3.1如何直连地理数据库

首先必须安装一个相应数据库的32位客户端,以Oracle为例,确保客户端大版本最好

与服务端一致,比如都是11G Release Two,都是12C Release One。然后在ArcCatalog的目

录树中找到数据库连接,填写相关的连接参数。

4.操作地理数据库

4.1 创建表

右键数据库连接节点,选择新建,选择创建表。

指定表名,别名。

此处选择默认,点击下一步。

此处可以添加字段及选择类型,确定后点击完成。

在连接节点中查看创建好的表。

4.2 创建FeatureDataset

右键数据库连接节点,选择新建,选择创建数据集。

给数据集指定名字。

给数据集指定坐标系统,数据集的坐标系统和数据集中的要素类的坐标系统必须保持一致。

Z值指定坐标系统,如果数据没有该值,可以选择为空,直接下一步。

设定容差,一般情况下使用默认设置,点击完成。

4.3 创建FeatureClass

右键数据库连接节点,选择新建,选择创建要素类,选择要创建的类型。

此处选择默认,下一步。

此处可以添加字段和类型,点击完成。

4.4 加载Shape文件到地理数据库中

右键需要导出的Shape文件,选择导出到地理数据库。

在该界面中,可以将Shape数据和地理数据库连接节点直接拖拽到参数框中。Output Feature

Class一栏可指定导入地理数据库以后文件的名称,Expression可以通过一些表达式计算对数

据进行一些自定义的操作。Field Map一栏可以对数据字段进行修改删除重命名等操作。

4.5 导出FeatureClassShape格式

右键需要导成Shape格式的要素类,选择导出为Shapefile

在该界面中,可以将要素类和本地位置直接拖拽到参数框中。Output Feature Class一栏可指

定导入地理数据库以后文件的名称,Expression可以通过一些表达式计算对数据进行一些自

定义的操作。Field Map一栏可以对数据字段进行修改删除重命名等操作。

4.6 将地理数据库导出为XML文件格式

右键需要导出的数据,选择XML Workspace Document

在此处可以选择是否导出全部数据以及是否只导出架构,选择导出的类型以及导出的位置。

此处可以更改表名,点击完成。

4.7 导入XML文件到地理数据库中

右键数据库连接节点,在导入中选择MXL Workspace Document

此处选择存在本地的XML文件,以及相应导入类型,点击下一步。

此处可以对表名进行修改,其他建议默认,点击完成。

4.8 导入影像数据到地理数据库中

4.8.1 创建栅格数据集

根据具体需求设置像元大小,像素类型,空间参考。波段数的设置需要注意,导入栅格数据

集的数据的波段数必须和栅格数据集的波段数相同。

创建成功后右键栅格数据集选择Load Data导入数据

下面是对该对话框参数的注释。

Mosaic Operator:如果要同时加载多个栅格数据集(镶嵌),请单击镶嵌运算符下拉箭头,

然后选择区域叠置规则。

Mosaic Colormap Mode:如果正在加载包含色彩映射表的栅格数据集,请单击镶嵌色彩映射

表模式下拉箭头,然后选择色彩映射表处理规则。

Ignore Background Value:为忽略背景值输入一个数字,以设置要忽略的背景值。

Nodata Value:为 NoData 值输入一个数字,以设置 NoData 值。

Convart 1 bit data to 8 bit:选中将 1 位数据转换为 8 位复选框。

Mosaicking Tolerance:设置镶嵌容差。镶嵌容差可控制是否对像素进行重采样。如果传入的

数据集与目标数据集之间的像素对齐差异小于该容差,则不执行重采样(而是执行位移)

容差的单位为像素,其有效值在 0 1 之间。

Color Matching Method:选择颜色匹配方法。该选项可用于选择一个算法,以对镶嵌在一起

的栅格数据集执行颜色匹配。

4.8.2 创建镶嵌数据集

右键创建好的镶嵌数据集,选择添加栅格

填写好相应参数

4.8.3创建栅格目录

下面是对该对话框参数的注释。

Template Raster Catalog:可以选择一个模板栅格目录,然后基于该模板新建栅格目录。

Raster Catalog Name:输入新栅格目录的名称。栅格目录名称中不能包含空格。可以使用下

划线来分隔字母。

Coordinate System for Raster Column:为栅格目录选择一个坐标系。

Coordinate System for Geometry Column:为几何列设置一个坐标系。

Configuration Keyword:设置配置关键字(可选)

Output Spatial Gird :设置空间格网(可选)

Raster Mangement Type:选择是否由地理数据库管理栅格目录。

右键单击栅格目录,然后单击加载 > 从工作空间加载。

单击输入工作空间浏览按钮浏览导航到要从中加载栅格数据集的工作空间。

请确保输出栅格目录是正确的。如果不正确,请单击浏览按钮浏览,导航到正确的栅格目录。

5. 多版本数据库编辑

5.1 注册数据

在创建多版本之前,首先要对数据集或者要素类注册版本。

此处如果打钩则会将改动直接保存到基表上,如果不打勾,则会将编辑的结果存在增量表

上。??????

5.2 创建版本

右键数据库连接节点,选择管理地理数据库

Public:所有用户都可以浏览和编辑

Private:只有SDE管理员,版本用户才能浏览和编辑

Protect:所有的用户可以浏览,SDE管理员,版本用户可以编辑

5.3 版本使用

可以通过右键数据库连接节点,选择地理数据库连接属性来切换版本。

也可以将要素类加载到ArcMap后,右键切换版本。

5.4 压缩数据

根据地理数据库中更新的数据量的多少,定时对地理数据库进行压缩。