移动地理数据库是磁盘上单个文件中包含的各种类型 GIS 数据集的集合,可以存储、查询和管理空间数据和非空间数据。移动地理数据库将自动提供给所有 ArcGIS Pro 用户,并可以使用多种方法创建,包括创建移动地理数据库地理处理工具,以及通过在工程文件夹中创建移动地理数据库。有关创建移动地理数据库的步骤和其他选项的信息,请参阅创建移动地理数据库。
优势
移动地理数据库是 ArcGIS Pro 2.7 中的新功能并存储在 SQLite 数据库中,它们具有以下优势:
- SQLite 是广泛可用、稳定且值得信任的数据库。
- SQLite 在公共域中是开源的,因此不需要许可。
- SQLite 数据库受跨平台支持,并且存储在磁盘上的单个文件中,从而使其具有可移植性和高效的数据交换格式。
- SQLite 是一个功能齐全的关系数据库,允许查询和报告工作流,并支持诸如视图和索引等操作。
- SQLite 可互操作,并且在移动应用程序开发中普遍存在。
移动地理数据库是 ArcGIS Pro 和 ArcGIS Runtime 两点之间互操作工作流的基础。将来,移动地理数据库将在 ArcGIS Runtime 和移动应用程序的 Esri 套件中启用增强的工作流和应用程序。
提示:
所有移动地理数据库都存储在 SQLite 数据库中,但并非所有 SQLite 数据库都是移动地理数据库。
数据集
移动地理数据库包含系统表、索引、触发器和视图,这些提供了地理数据库功能以与简单要素一起使用,例如点、多点、多面体、多边形、线几何和真实曲线。
您添加到移动地理数据库的数据可以存储在以下类型的数据集中:
- 要素类
- 要素数据集
- 表(非空间)
注:
有关要素类和表名长度以及其他大小限制的信息,请参阅移动地理数据库的大小和名称限制。
移动地理数据库支持以下地理数据库行为:
- 注记
- 附件
- 属性规则(实时计算和约束规则)
- 条件值
- 尺寸注记
- 属性域
- 编辑者追踪
- 与要素关联的注记
- 连接
- 关系类
- 子类型
- 视图
属性
可以从 ArcGIS Pro 中的内容和目录窗格访问移动地理数据库中的数据集属性。要素类属性对话框用于设置别名以及空间和属性索引,并在目录窗格中进行管理。
要打开要素类属性对话框,请在目录窗格或目录视图中右键单击表或要素类,然后单击属性。在属性对话框中,某些属性是可编辑的,而其他属性是只读的。
数据管理
您只能在移动地理数据库上执行一些管理任务,包括创建、重命名和移动地理数据库。移动地理数据库不包含身份验证或授权功能,一次只能供一个人或一个应用程序使用,并且在编辑时支持撤消和恢复。地理数据库级别的任何操作只能通过 ArcGIS 来执行。有关在移动地理数据库中进行编辑时如何应用锁的详细信息,请参阅移动地理数据库和锁定进程。
移动地理数据库 (.geodatabase) 以 SQLite 为基础构建而成。SQLite 是独立的数据库文件格式,将数据库存储在磁盘上的单个文件中,该文件可以位于目录中的任何位置。此单个文件最多可容纳 2 TB 的数据,易于移植,在各个平台上均受支持,并且可以复制、移动、通过电子邮件发送或写入 USB 设备,以促进更高效的数据交换。
SQLite 数据库文件有两个名称:
- 物理文件名,这是数据库文件名的路径。
- 逻辑名称,即与 SQL 命令一起使用的 SQLite 数据库名称,无论数据库文件名如何,其名称均为 main。
SQLite 数据库路径由文件路径、数据库名称和文件扩展名组成。
例如,如果您使用创建移动地理数据库地理处理工具来创建一个名为 Project1_data 的移动地理数据库,并将其存储在 Microsoft Windows 操作系统的 C:\ 盘的子文件夹中,则该移动地理数据库的数据库路径将类似于以下内容:C:\GIS_Data\Projects\Mobile_Geodatabase\Project1_data.geodatabase。
由于 SQLite 是关系数据库,因此您可以在第三方软件中使用 SQL 来访问移动地理数据库的内容。使用 SQL 访问的 SQLite 数据库使用逻辑数据库名称。使用 SQL 访问 SQLite 数据库时,名为 main 的数据库是为主数据库保留的,并且无论物理数据库文件名如何都可以使用该数据库。SQLite 中的限定表名称将为 main.<表名称>,并且 SQLite 中的限定列名称将采用 <表名称>.<列名称> 或 <数据库名称>.<表名称>.<列名称>。
例如,如果您使用 SQL 从 ParcelOwners 表的 Tax_Value 和 Owner_Name 列中获取数据,请使用以下语句:SELECT Main.ParcelOwners.Owner_Name, Main.ParcelOwners.Tax_Value FROM Main.ParcelOwners。
通过 SQL 访问移动地理数据库中的数据不需要许可,因为底层软件 SQLite 不需要许可。