PostgreSQL-Arcgis地理数据库中的系统表

应用场景:

       当我们在使用基于PostgreSQL的企业级地理数据库时,有时因为某个问题可能需要追踪该地理数据库的行为,以便于分析具体原因,这时候就需要访问企业级地理数据库的系统表来进行分析(一般只执行查询操作)。

注:不得使用 ArcGIS 软件或 SDK 以外的任何其他软件更改系统表及其内容。但是,您可以使用 SQL 来查看系统表的内容

系统表列表:

  1. 地理数据库中的系统表-SDE

https://desktop.arcgis.com/zh-cn/arcmap/10.6/manage-data/gdbs-in-postgresql/system-tables-postgresql.htm

    1. SDE前缀
      1. sde_archives

SDE_archives 表用于存储地理数据库中存档的元数据

字段名

字段类型

描述

是否允许为空

archiving_regid

integer

业务表的注册 ID

NOT NULL

history_regid

integer

存档表的注册 ID

NOT NULL

from_date

nvarchar(32)

起始日期字段的名称

NOT NULL

to_date

nvarchar(32)

结束日期字段的名称

NOT NULL

archive_date

bigint

存档的创建日期

NOT NULL

archive_flags

bigint

当前未使用

NOT NULL

      1. SDE_branch_tables_modified

SDE_branch_tables_modified 表用于存储分支表编辑

字段名

字段类型

描述

是否允许为空

branch_id

Int4

分支ID

NOT NULL

registration_id

Int4

表注册Id

NOT NULL

edit_moment

timestamp

编辑时间点

NOT NULL

      1. SDE_branches

SDE_branch 分支管理表

      1. sde_column_registry

SDE_column_registry 表存储,里注册信息。

警告:如果使用 SQL 界面更改列定义,SDE_column_registry 表中的记录将不会更新。这可能导致之后的任何数据导出失败。

字段名

字段类型

描述

是否允许为空

database_name

nvarchar(32)

列所在数据库名称

NOT NULL

table_name

nvarchar(128)

列所在表的注册名称

NOT NULL

schema

nvarchar(32)

表所在模式的名称

NOT NULL

column_name

nvarchar(32)

注册列的名称

NOT NULL

sde_type

integer

列的数据类型的代码;可能的值及其定义如下:

1 = SE_INT16_TYPE - 2 字节整型

2 = SE_INT32_TYPE - 4 字节整型

3 = SE_FLOAT32_TYPE - 4 字节浮点型

4 = SE_FLOAT64_TYPE - 8 字节浮点型

5 = SE_STRING_TYPE - 空终端字符数组

6 = SE_BLOB_TYPE - 可变长度数据

7 = SE_DATE_TYPE - 结构化时间日期

8 = SE_SHAPE_TYPE - 形状几何 (SE_SHAPE)

9 = SE_RASTER_TYPE - 栅格

10 = SE_XML_TYPE - XML 文档

11 = SE_INT64_TYPE - 8 字节整型

12 = SE_UUID_TYPE - 通用唯一 ID

13 = SE_CLOB_TYPE - 字符可变长度数据

14 = SE_NSTRING_TYPE - Unicode 空终端字符数组

15 = SE_NCLOB_TYPE - Unicode 字符大对象

20 = SE_POINT_TYPE - 点用户定义类型

21 = SE_CURVE_TYPE - 线串 (Linestring) 用户定义类型

22 = SE_LINESTRING_TYPE - 线串 (Linestring) 用户定义类型

23 = SE_SURFACE_TYPE - 面用户定义类型

24 = SE_POLYGON_TYPE - 面用户定义类型

25 = SE_GEOMETRYCOLLECTION_TYPE - 多点用户定义类型

26 = SE_MULTISURFACE_TYPE - 线串 (Linestring) 用户定义类型

27 = SE_MULTICURVE_TYPE - 线串 (Linestring) 用户定义类型

28 = SE_MULTIPOINT_TYPE - 多点用户定义类型

29 = SE_MULTILINESTRING_TYPE - 多线串 (Multilinestring) 用户定义类型

30 = SE_MULTIPOLYGON_TYPE - 多面 (Multipolygon) 用户定义类型

31 = SE_GEOMETRY_TYPE - 几何用户定义类型

column_size

integer

注册列值的长度

decimal_digits

integer

列值中小数点右侧的整数位数

description

nvarchar(65)

列类型的说明

object_flags

integer

存储列属性,包括:

具有行 ID

由 ArcSDE 控制的行 ID 列

允许空值

存储 BLOB 数据

存储 CLOB 数据

存储 ST_Geometry 几何数据

存储二进制几何数据

存储用户定义类型几何数据

存储PostGIS几何数据

存储二进制栅格数据

存储用户定义类型栅格数据

存储 XML 数据

存储日期

存储时间

存储时间戳

存储 Unicode 字符串

NOT NULL

object_id

integer

如果此列为栅格列,则设置为 SDE_raster_columns 表的 rastercolumn_id;如果此列为几何列,则设置为 SDE_layers 表的 layer_id

      1. sde_compress_log 

SDE_compress_log 表用于追踪对地理数据库执行的所有压缩操作,首次研所地理数据库时创建

字段名

字段类型

描述

是否允许为空

compress_id

integer

压缩操作的唯一标识符

NOT NULL

sde_id

integer

压缩操作的进程标识号;引用 SDE_process_information 表中的 sde_id 列

NOT NULL

server_id

integer

已执行或正在执行压缩操作的 ArcSDE 服务器进程的系统进程 ID

NOT NULL

direct_connect

varchar(1)

在客户端建立与地理数据库的直连时设置为 Y(是)或 N(否)

NOT NULL

compress_start

datetime

开始执行压缩操作的日期和时间

NOT NULL

start_state_count

integer

开始压缩时存在的状态数

NOT NULL

compress_end

datetime

完成压缩操作的日期和时间

NOT NULL

end_state_count

integer

完成压缩操作后的剩余状态数

NOT NULL

compress_status

nvarchar(20)

指示压缩操作是否成功完成

NOT NULL

      1. sde_coordinate_systems

字段名

字段类型

描述

是否允许为空

id

Int4

坐标系统唯一标识

NOT NULL

name

Varchar(128)

坐标系统名称

NOT NULL

type

Varchar(128)

Unspecified;

Projected:

Geographic

NOT NULL

definition

Varchar(2048)

详细定义:

NOT NULL

organization

Varchar(128)

坐标系统定义组织

NOT NULL

description

Varchar(256)

描述

NOT NULL

老版本:

SDE_spatial_references

SDE_spatial_references 表中包含坐标系和从浮点型到整型的转换值。存储前,内部功能会利用空间参考系的参数将几何的每个浮点型坐标都转换和调整为 64 位正整数。进行检索时,这些坐标将恢复为其初始外部浮点型形式。

SDE_geometry_columns 表的每个几何列都与一个空间参考系相关联,与之相关的信息将存储在 SDE_spatial_references 表中。该表中各列均由 OpenGIS SQL 规范(srid、srtext、auth_name 和 auth_srid)定义,并且 ArcSDE 需要通过这些列进行内部坐标转换。空间参考系可用于标识几何的坐标系,并为几何的数字坐标值赋予意义。

字段名

字段类型

描述

是否允许为空

srid

integer

空间参考标识符

NOT NULL

description

nvarchar(64)

空间参考系统的文本描述

auth_name

nvarchar(255)

该参考系所引用标准所属组织的名称;例如,POSC 便属于有效 auth_name

auth_srid

integer

由 auth_name 中所引用的授权机构定义的空间参考系的 ID

falsex

float

将地面坐标转换为内部系统坐标时使用的 x 偏移

NOT NULL

falsey

float

将地面坐标转换为内部系统坐标时使用的 y 偏移

NOT NULL

xyunits

float

将地面坐标转换为内部系统坐标时应用的比例因子

NOT NULL

falsez

float

将 z 值转换为内部系统坐标时使用的 z 偏移

NOT NULL

zunits

float

将 z 值转换为内部系统坐标时使用的比例因子

NOT NULL

falsem

float

将测量值转换为内部系统坐标时使用的测量偏移

NOT NULL

munits

float

将测量值转换为内部系统坐标时使用的比例因子

NOT NULL

xycluster_tol

float

用于拓扑处理的 xy 坐标拓扑容差

zcluster_tol

float

用于拓扑处理的 z 坐标拓扑容差

mcluster_tol

float

用于拓扑处理的测量值拓扑容差

object_flags

integer

存储对象属性(包括精度)

NOT NULL

srtext

nvarchar(1024)

在 ArcGIS 界面中显示的空间参考的名称和描述符

NOT NULL

      1. sde_dbtune

SDE_dbtune 表用于存储 ArcSDE 数据对象(如要素类)的配置关键字。

字段名

字段类型

描述

是否允许为空

keyword

nvarchar(32)

配置关键字

NOT NULL

parameter

nvarchar(32)

配置参数

NOT NULL

config_string

nvarchar(2048)

配置参数的值

NOT NULL

      1. sde_geometry_columns

SDE_geometry_columns 表为符合 OpenGIS SQL 规范的每列类型几何都在数据库中存储一行。ArcSDE 将此表视为只限写入,因此仅在添加或删除 OpenGIS SQL 数据格式的图层时,才可通过 ArcSDE 访问此表。该表由 OpenGIS SQL 规范定义,还可以在其他应用程序中用不由 ArcSDE 托管的几何列更新该表。以符合 OpenGIS 标准的格式新建几何列时,完全限定的表名、列名和空间参考 ID (srid) 会添加到 SDE_geometry_columns 表中。

每个几何列都与一个空间参考系相关联。有关各空间参考系的信息均将存储在 SDE_spatial_references 表中。

字段名

字段类型

描述

是否允许为空

f_table_catalog

nvarchar(32)

存储要素表的数据库

NOT NULL

f_talbe_owner

nvarchar(32)

要素表的拥有者

f_table_schema

nvarchar(32)

要素表所在的模式(方案)

NOT NULL

f_table_name

sysname

要素表名

NOT NULL

f_geometry_column

nvarchar(32)

要素表中几何列

NOT NULL

storage_type

integer

几何的存储类型代码;可以表示 WKB、WKT 或 BINARY

geometry_type

integer

列存储的几何类型的代码;可以表示点、多点、线串、多线串、面或多面

coord_dimension

integer

坐标维度编码:

0 = 点

1 = 线

2 = 面

max_ppr

integer

每行的最大点数(ArcSDE 不再使用)

srid

integer

空间参考 ID

NOT NULL

      1. sde_layer_locks

SDE_layer_locks 表用于记录要素类的锁。

字段名

字段类型

描述

是否允许为空

sde_id

integer

已锁定图层的进程的进程标识号;SDE_process_information 表中 sde_id 列的外键

NOT NULL

layer_id

integer

SDE_layers 表中 layer_id 字段的外键

NOT NULL

autolock

character(1)

如果对图层锁进行内部设置,则设置为 1;否则,如果图层锁由应用程序设置,则设置为 0。

lock_type

character(1)

图层锁的类型包括:

  • 0 = 作用于整个图层的读取锁
  • 1 = 作用于整个图层的写入锁
  • 2 = 作用于图层内某一区域的读取锁
  • 3 = 作用于图层内某一区域的写入锁
  • 4 = 图层自动锁

NOT NULL

minx

bigint

用于在区域锁定期间定义区域内要素的边界框的最小 x 坐标

miny

bigint

用于在区域锁定期间定义区域内要素的边界框的最小 y 坐标

maxx

bigint

用于在区域锁定期间定义区域内要素的边界框的最大 x 坐标

maxy

bigint

用于在区域锁定期间定义区域内要素的边界框的最大 y 坐标

lock_time

datetime

获取图层锁的日期和时间

NOT NULL

      1. sde_layers

SDE_layer_stats 表用于管理版本化和非版本化要素类的统计数据。这些统计数据在更新地理数据库统计数据时生成。某些地理处理工具使用统计数据来评估是否使用切片处理。

SDE_layer_stats 表通过图层 ID 与 SDE_layers 表进行关联。

字段名

字段类型

描述

是否允许为空

layer_id

integer

图层的唯一标识符

NOT NULL

minx

float

图层 x 坐标的最小值

NOT NULL

miny

float

图层 y 坐标的最小值

NOT NULL

maxx

float

图层 x 坐标的最大值

NOT NULL

maxy

float

图层 y 坐标的最大值

NOT NULL

minz

float

图层 z 坐标的最小值

NOT NULL

minm

float

图层 m 坐标的最小值

maxz

float

图层 z 坐标的最大值

maxm

float

图层 m 坐标的最大值

total_features

integer

要素类中的要素总数

NOT NULL

total_points

integer

要素类中的点(折点)数

NOT NULL

version_id

integer

地理数据库版本的唯一标识符

last_analyzed

datetime

最近一次分析要素类和更新统计数据的日期和时间

NOT NULL

      1. Sde_layers

SDE_layers 表用于记录与数据库中各要素类相关的数据。该信息帮助构建和维护空间索引、确保正确的形状类型、维护数据完整性以及存储坐标数据的空间参考。

数据库中的每个空间列对应该表中的一行。应用程序使用图层属性来查找可用的空间数据源。ArcSDE 使用这些图层属性来约束和验证空间列内容、索引几何值,以及正确创建和管理关联的 DBMS 表。

字段名

字段类型

描述

是否允许为空

layer_id

integer

图层的唯一标识符

NOT NULL

description

nvarchar(65)

用户定义的图层描述

database_name

nvarchar(32)

图层所在数据库的名称

NOT NULL

table_name

sysname

图层的业务表的名称

NOT NULL

owner

nvarchar(32)

创建了图层的用户

NOT NULL

spatial_column

nvarchar(32)

图层中空间列的名称

NOT NULL

eflags

integer

用于存储下列图层属性:

  • 存储单精度坐标还是双精度坐标
  • 存储 3D 坐标
  • 存储度量值
  • 启用还是禁用自动锁定
  • 使用只加载 I/O 模式还是正常 I/O 模式
  • 存储注记
  • 存储 CAD 数据
  • 是另一个图层的视图
  • 不具有空间索引
  • 存储图层数据所使用的 DBMS 数据类型
  • 图层可接受的 sde 类型,包括点、线串和面

NOT NULL

layer_mask

integer

用于存储与图层相关的附加内部属性

NOT NULL

gsize1

float

第一个空间格网的大小

NOT NULL

gsize2

float

第二个空间格网的大小

NOT NULL

gsize3

float

第三个空间格网的大小

NOT NULL

minx

float

图层 x 坐标的最小值

NOT NULL

miny

float

图层 y 坐标的最小值

NOT NULL

maxx

float

图层 x 坐标的最大值

NOT NULL

maxy

float

图层 y 坐标的最大值

NOT NULL

minz

float

图层 z 坐标的最小值

maxz

float

图层 z 坐标的最大值

minm

float

图层 m 坐标的最小值

maxm

float

图层 m 坐标的最大值

cdate

integer

图层的创建日期

NOT NULL

layer_config

nvarchar(32)

创建图层时指定的配置关键字

optimal_array_size

integer

几何矩阵缓冲区大小

stats_date

对于图层,日期统计数据放在最后计算

minimum_id

integer

二进制图层要素 ID 的最小值

srid

integer

空间参考标识号;与 SDE_spatial_references 表中的 srid 值对应

NOT NULL

base_layer_id

integer

存储图层(实际上是视图)的基础图层的 layer_id 值

secondary_srid

integer

用于存储高精度坐标参考,以便在数据从基本精度向高精度转换时对数据进行投影

 

      1. sde_lineages_modified

SDE_lineages_modified 表包含状态谱系 ID 及其最近一次修改的时间戳。

字段名

字段类型

描述

是否允许为空

lineage_name

bigint

与 SDE_state_lineages 表中的 lineage_name 字段对应

NOT NULL

time_last_modified

datetime

最近一次修改谱系的日期和时间

NOT NULL

      1. Sde_locators

SDE_locators 表用于存储与定位器对象相关的信息。

字段名

字段类型

描述

是否允许为空

locator_id

integer

定位器的唯一标识符

NOT NULL

name

nvarchar(32)

定位器的名称

NOT NULL

owner

nvarchar(32)

定位器所有者的用户名

NOT NULL

category

nvarchar(32)

定位器的类别;地址定位器包含地址的类别值

NOT NULL

type

integer

定位器类型;值的含义如下:

  • 0 - 定义定位器样式
  • 1 - 定义定位器
  • 2 - 定义附加定位器;换句话说,就是附加到经过地理编码的要素类的定位器,也是指定位器的副本和用于创建经过地理编码的要素类的地理编码选项

NOT NULL

description

nvarchar(64)

定位器的描述

 

      1. SDE_logfile_pool

无论使用何种类型的日志文件,SDE_logfile_pool 表一经创建即会保存在地理数据库中。有关此表和其他日志文件表的说明,请参阅 SQL Server 地理数据库中的日志文件表

未来版本可能会被删除

      1. SDE_multibranch_table

Sde_multibranch_table多分支表

      1. sde_mvtables_modified

SDE_mvtables_modified 表用于维护在数据库的各种状态下修改的所有表的列表。该信息用于帮助快速确定在数据库的版本或状态之间是否存在冲突。

SDE_mvtables_modified 表用于保存一份按状态修改的所有表的记录。通过该信息,应用程序可在协调数据库中版本及状态之间的潜在冲突时,确定需要检查哪些表的更改情况。

每次在某个状态下修改要素类或表时,都会在 SDE_mvtables_modified 表中创建一个新条目。对两个版本进行协调时,此过程的第一个步骤是识别这两个版本引用的状态 - 当前编辑版本的状态和目标版本的状态。根据这些状态,通过追踪这两个版本的状态谱系可识别公共祖先状态。

字段名

字段类型

描述

是否允许为空

state_id

bigint

表示此表修改状态的标识符;SDE_states 表中 state_id 字段的外键

NOT NULL

registration_id

integer

在此状态下所修改表的注册 ID;SDE_table_registry 表的外键

NOT NULL

      1. sde_object_ids

      1. sde_object_locks

SDE_object_locks 表用于记录地理数据库对象上的锁。

字段名

字段类型

描述

是否允许为空

sde_id

integer

已锁定地理数据库对象的进程的进程标识号;引用 SDE_process_information 表中的 sde_id 列

NOT NULL

object_id

integer

GDB_ITEMS 表中受影响的数据集的 ID

NOT NULL

object_type

integer

对象锁类型,例如,由内部应用程序使用的 version,state_tree 锁

NOT NULL

application_id

integer

应用程序唯一标识符

NOT NULL

autolock

character(1)

如果对图层锁进行内部设置,则设置为 1;否则,如果图层锁由应用程序设置,则设置为 0

NOT NULL

lock_type

character(1)

对象锁的类型:S = 共享,E = 独占

NOT NULL

lock_time

datetime

获取对象锁的日期和时间

NOT NULL

      1. sde_process_information

SDE_process_information 表用于收集 ArcSDE 会话统计数据,例如会话处于活动状态时读取的记录数量和写入的记录数量。

字段名

字段类型

描述

是否允许为空

sde_id

integer

进程标识号

NOT NULL

spid

integer

Gsrvr 进程 ID

NOT NULL

server_id

integer

服务器进程的操作系统进程 ID

NOT NULL

start_time

datetime

进程的启动日期和时间

NOT NULL

rcount

integer

已处理的读取数量

NOT NULL

wcount

integer

已处理的写入数量

NOT NULL

opcount

integer

处理过程已执行的操作总数

NOT NULL

numlocks

integer

处理过程当前已打开的锁数量

NOT NULL

fb_partial

integer

处理过程所传送的部分要素的总数

NOT NULL

fb_count

integer

处理过程加载的缓冲区的总数

NOT NULL

fb_fcount

integer

处理过程缓冲的要素的总数

NOT NULL

fb_kbytes

integer

处理过程缓冲的千字节总数

NOT NULL

owner

nvarchar(30)

已连接用户的名称

NOT NULL

direct_connect

varchar(1)

用于指示是否通过直连方式执行的处理过程:T(真)或 F(假)

NOT NULL

sysname

nvarchar(32)

当前在客户端计算机上运行的操作系统

NOT NULL

nodename

nvarchar(255)

已连接的客户端计算机名称

NOT NULL

xdr_needed

varchar(1)

用于记录客户端是否在使用 XDR 来与 gsrvr 通信:T(真)或 F(假)

NOT NULL

table_name

nvarchar(95)

会话时所使用的内部临时表的名称

NOT NULL

      1. sde_raster_columns

SDE_raster_columns 表中包含数据库中存储的栅格列的列表。

该表用于引用波段表、块表和辅助表中的栅格数据。

字段名

字段类型

描述

是否允许为空

rastercolumn_id

integer

栅格列表的主键

NOT NULL

description

nvarchar(65)

用户定义的栅格表描述

database_name

nvarchar(32)

栅格所在数据库的名称

NOT NULL

owner

nvarchar(32)

栅格列的业务表的所有者

NOT NULL

table_name

sysname

业务表名称

NOT NULL

raster_column

nvarchar(32)

栅格列名称

NOT NULL

cdate

integer

栅格列添加到业务表的日期

NOT NULL

config_keyword

nvarchar(32)

创建栅格时指定的 DBTUNE 配置关键字;用于确定栅格的表和索引在数据库中的存储方式

minimum_id

integer

在栅格创建过程中定义,用于设定栅格表的 raster_id 列的值

base_rastercolumn_id

integer

当栅格列属于视图而非表的一部分时,它是视图基础表的 rastercolumn_id

NOT NULL

rastercolumn_mask

integer

对于地理数据库栅格,设置为 256

NOT NULL

srid

integer

空间参考标识号,引用 SDE_spatial_references 表中的 srid

 

      1. sde_server_config

SDE_server_config 表用于存储 ArcSDE 服务器配置参数。这些参数可定义 ArcSDE 软件使用内存的方式。

字段名

字段类型

描述

是否允许为空

prop_name

nvarchar(32)

初始化参数名称

NOT NULL

char_prop_value

nvarchar(512)

初始化参数的字符型值

NOT NULL

num_prop_value

integer

初始化参数的整型值

NOT NULL

      1. sde_state_lineages

SDE_state_lineages 表用于存储各状态的谱系。会为每个版本创建一个新的谱系名称。每当添加一个状态时,都会添加谱系名称和状态 ID。当添加的状态是新版本时,还会添加父状态的祖先状态谱系(包括该谱系名称)。

要返回某个版本的正确视图,通过查询其状态谱系可识别每次对该版本进行更改时所记录的所有状态。通过此状态列表,可确定正确表示版本的表行。

字段名

字段类型

描述

是否允许为空

lineage_name

bigint

用于描述状态的名称

NOT NULL

lineage_id

bigint

各状态的唯一标识符

NOT NULL

      1. sde_state_locks

SDE_state_locks 表用于维护版本状态锁。

字段名

字段类型

描述

是否允许为空

sde_id

integer

已锁定状态的进程的进程标识号;引用 SDE_process_information 表中的 sde_id 列

NOT NULL

state_id

bigint

被锁定的状态的标识符

NOT NULL

autolock

character(1)

如果对图层锁进行内部设置,则设置为 1;否则,如果图层锁由应用程序设置,则设置为 0

NOT NULL

lock_type

character(1)

状态锁的类型;可能的类型包括:

  • 0 = 整个状态树上的共享锁
  • 1 = 整个状态树上的排它锁
  • 2 = 状态上的共享锁
  • 3 = 状态上的排它锁
  • 4 = 共享自动锁
  • 5 = 独占自动锁

NOT NULL

lock_time

datetime

获取状态锁的日期和时间

NOT NULL

      1. sde_states

SDE_states 表中包含状态元数据。它指示一段时间内创建的状态,还有每个状态的创建时间、关闭时间、父状态以及所有者。

每创建一个状态,都会指定状态 ID 并且会在该表中添加一条记录。

字段名

字段类型

讨论

是否允许为空

state_id

bigint

由 ArcSDE 指定的该状态的唯一标识符

NOT NULL

owner

nvarchar(32)

创建该状态的用户

NOT NULL

creation_time

datetime

该状态的创建日期和时间

NOT NULL

closing_time

datetime

该状态的关闭日期和时间

parent_state_id

bigint

父状态的 state_id

NOT NULL

lineage_name

bigint

引用存储在 SDE_state_lineages 表中的状态的谱系名称

NOT NULL

      1. sde_table_locks

SDE_table_locks 表用于维护 ArcSDE 注册的表上的锁。

字段名

字段类型

描述

是否允许为空

sde_id

integer

已锁定表的进程的进程标识号;引用 SDE_process_information 表中的 sde_id 列

NOT NULL

registration_id

integer

SDE_table_registry 表中 registration_id 字段的外键

NOT NULL

lock_type

character(1)

表锁的类型

  • S = 共享
  • E = 独占

NOT NULL

lock_time

datetime

获取表锁的日期和时间

NOT NULL

      1. sde_table_registry

SDE_table_registry 表用于管理所有注册的表。这些值包括 ID、表名、所有者和描述。

字段名

字段类型

描述

是否允许为空

registration_id

integer

该表注册的唯一标识符

NOT NULL

database_name

nvarchar(32)

该表所在数据库的名称

NOT NULL

table_name

sysname

该表的名称

NOT NULL

owner

nvarchar(32)

创建该表的用户

NOT NULL

rowid_column

nvarchar(32)

该表中 ObjectID 列的名称

NOT NULL

description

nvarchar(65)

用户定义的对该表的文本描述

object_flags

integer

用于存储该表的注册属性,包括:

  • 该表具有注册的行 ID。
  • ArcSDE 控制行 ID。
  • 该表具有几何列。
  • 该表是一个版本化视图。
  • 该表可以对行加锁。
  • 该表具有栅格列。
  • 该表是另一张表的视图。
  • 该表具有地理编码定位器列。
  • 限制数据定义语言操作。
  • 限制数据处理语言操作。
  • 该表处于隐藏状态。
  • 该表具有单一的行 ID。
  • 该表具有 XML 列。
  • 该表具有可存储双精度坐标的图层。
  • 该版本化表的内部状态可以进行编辑。
  • 这是一张基础保存表。
  • 该表具有可信的形状。
  • 这是一张存档表。
  • 该表使用只加载 I/O 模式。
  • 这是一张历史记录表。

NOT NULL

registration_date

integer

该表注册到 ArcSDE 的日期

NOT NULL

config_keyword

nvarchar(32)

该表注册到 ArcSDE 时指定的配置关键字;确定该表及其索引在数据库中的存储方式

minimum_id

integer

该表的最小 row_id 值

imv_view_name

nvarchar(32)

指定表的版本化视图的名称


 

      1. sde_tables_modified

SDE_tables_modified 表用于记录对系统表做出更改的时间。该信息用于避免对无改动的表的不必要读取。

字段名

字段类型

描述

是否允许为空

table_name

sysname

修改的 ArcSDE 系统表的名称

NOT NULL

time_last_modified

datetime

修改此表的日期和时间

NOT NULL

      1. sde_version

 

SDE_version 表用于维护与数据库配合使用的 ArcSDE 的版本信息。该表包含 ArcSDE 最近一个安装版本的具体版本标识。

SDE_version 表和其他 ArcSDE 系统表在安装新版本 ArcSDE 之后会进行更新。

字段名

字段类型

描述

是否允许为空

major

integer

主版本号;例如,ArcSDE 9.3 的主版本号为 9。

NOT NULL

minor

integer

次版本号;例如,ArcSDE 9.3 的次版本号为 3。

NOT NULL

bugfix

integer

修补程序或补丁包的安装数量

NOT NULL

description

nvarchar(96)

系统定义的 ArcSDE 安装描述

NOT NULL

release

integer

完整版本号,例如 92009

NOT NULL

sdesvr_rel_low

integer

指明运行该实例所允许的最低服务器版本号

NOT NULL

      1. sde_versions

SDE_versions 表包含与版本化地理数据库有关的信息。

每个版本均由名称、所有者、描述以及关联数据库的状态共同标识。此表定义数据库包含的不同版本,并为用户提供一份可用版本的列表。应用程序会使用这些版本访问特定的数据库状态。版本名称和 ID 是唯一的。

当 ArcSDE 首次创建 SDE_versions 表时,会将一个默认版本插入到该表中。此默认版本的名称为 DEFAULT,由 ArcSDE 管理员所有并被授予 PUBLIC 访问权限。初始 state_id 设为 0,并且描述字符串会读取“实例默认版本”。由于默认版本已被授予 PUBLIC 访问权限,因此任何用户都可以更改默认状态。

ArcGIS 要求存在默认版本。如果您无意中删除了默认版本,可以使用以下 SQL INSERT 语句来代替它:

INSERT INTO sde_versions VALUES

('DEFAULT','SDE',1,1,0,'Instance default version.',null,null,null,GETDATE())

字段名

字段类型

描述

是否允许为空

name

nvarchar(64)

版本的唯一名称

NOT NULL

owner

nvarchar(32)

版本所有者

NOT NULL

version_id

integer

版本的唯一标识符

NOT NULL

status

integer

指定该版本是否可由任何用户访问,或者说是否只能由所有者进行私人访问

NOT NULL

state_id

bigint

该版本指向的数据库状态的标识符

NOT NULL

description

nvarchar(64)

可选的版本文本描述

parent_name

nvarchar(64)

该版本的父版本名称

parent_owner

nvarchar(32)

父版本的所有者名称

parent_version_id

integer

该版本的父版本标识符

creation_time

datetime

该版本的创建日期和时间

NOT NULL

    1. GEO前缀

      1. Gdb_conflicts

      1. gdb_itemrelationships

GDB_ITEMRELATIONSHIPS 表用于存储有关 GDB_ITEMS 表中各对象之间关联方法的信息。例如,此表会对要素数据集和复本进行跟踪。

字段名

字段类型

描述

是否允许为空

objectid

integer

行的唯一标识符

NOT NULL

uuid

uniqueidentifier

项的唯一标识符

NOT NULL

type

uniqueidentifier

与 GDB_ITEMRELATIONSHIPTYPES 表中的 UUID 对应

NOT NULL

originid

uniqueidentifier

与 GDB_ITEMS 表中的 UUID 对应

NOT NULL

destid

uniqueidentifier

与 GDB_ITEMS 表中的 UUID 对应

NOT NULL

properties

integer

项属性的位掩码

attributes

xml

表示属性对的属性集

      1. gdb_itemrelationshiptypes

GDB_ITEMRELATIONSHIPTYPES 表中包含有关 GDB_ITEMS 表中各对象之间存在的关系类型的数据。

字段名

字段类型

描述

是否允许为空

objectid

integer

行的唯一标识符

NOT NULL

uuid

uniqueidentifier

项的唯一标识符

NOT NULL

name

nvarchar(226)

关系类型名称;包括下列值:

  • DatasetInFeatureDataset
  • DatasetInFolder
  • DatasetOfReplicaDataset
  • DatasetsRelatedThrough
  • DomainInDataset
  • FeatureClassInGeometricNetwork
  • FeatureClassInNetworkDataset
  • FeatureClassInParcelFabric
  • FeatureClassInTerrain
  • FeatureClassInTopology
  • FolderInFolder
  • ItemInFolder
  • ReplicaDatasetInReplica
  • RepresentationOfFeatureClass
  • TableInParcelFabric

NOT NULL

forwardlabel

nvarchar(226)

根据源项的上下文描述关系的标注

backwardlabel

nvarchar(226)

根据目标项的上下文描述关系的标注

origItemtypeid

uniqueidentifier

与 GDB_ITEMTYPES 表中的 UUID 对应

destItemtypeid

uniqueidentifier

与 GDB_ITEMTYPES 表中的 UUID 对应

NOT NULL

iscontainment

smallint

指示源项的存在是否控制目标对象的存在


 

      1. gdb_items

项是指在 ArcGIS 系统中使用的、可建立索引和进行搜索的任何对象,包括表、属性域、拓扑和网络。GDB_ITEMS 表中包含有关存储在地理数据库中的所有项的信息。

字段名

字段类型

描述

是否允许为空

objectid

integer

行的唯一标识符

NOT NULL

uuid

uniqueidentifier

项的唯一标识符

NOT NULL

type

uniqueidentifier

与 GDB_ITEMTYPES 表中的 UUID 对应

NOT NULL

name

nvarchar(226)

项(逻辑)的名称

physicalname

nvarchar(226)

项的全限定名称

path

nvarchar(512)

项的唯一相对路径

url

nvarchar(255)

项的关联 URL;用于目录服务

NOT NULL

properties

integer

项属性的位掩码

defaults

varbinary(max)

独立于基础数据集的项目的相关信息,如序列化渲染器;要素类符号;或表格的列宽、颜色或字体

NOT NULL

datasetsubtype1

integer

指示表的要素类型

对于要素类和栅格目录来说,可能的值如下:

  • 1 = 简单要素
  • 7 = 简单交汇点要素
  • 8 = 简单边
  • 10 = 复杂边
  • 11 = 注记要素
  • 13 = 尺寸要素
  • 14 = 栅格目录项

对于关系类,会存储关系类的基数。可能的值有:

  • 1 = 1:1
  • 2 = 1:M
  • 3 = M:N

对于拓扑,该列用于存储拓扑 ID。

datasetsubtype2

integer

指示表的几何类型

对于要素类和栅格目录来说,可能的值如下:

  • 1 = 单个的零维度几何
  • 2 = 点的有序集合
  • 3 = 路径的有序集合
  • 4 = 根据彼此间的包含关系排序的环的集合
  • 9 = 表面图面的集合

对于关系类,该列中的值用于指示关系类是否属性化。可能的值有:0 = 非属性化,1 = 属性化。

datasetinfo1

nvarchar(255)

存储要素类的形状字段名称

datasetinfo2

nvarchar(255)

存储参与拓扑的要素类的信息

definition

xml

存储有关项的信息

documentation

xml

项的数据定义(元数据)

iteminfo

xml

项的存储信息(如符号系统),与基础数据集相互独立

shape

geometry

项的空间范围

NOT NULL

      1. gdb_itemtypes

GDB_ITEMTYPES 表用于存储有关 GDB_ITEMS 表中每个项的对象类型的信息。

字段名

字段类型

描述

是否允许为空

objectid

integer

行的唯一标识符

NOT NULL

uuid

uniqueidentifier

项的唯一标识符

NOT NULL

parenttypeid

nvarchar(226)

此表 (GDB_ITEMTYPES) 中 UUID 的外键

NOT NULL

name

uniqueidentifier

项类型的名称;包括下列值:

  • 抽象表
  • 目录数据集
  • 编码值属性域
  • 数据集
  • 属性域
  • 扩展数据集
  • 要素类
  • 要素数据集
  • 文件夹
  • 几何网络
  • 历史标记
  • 镶嵌数据集
  • 网络数据集
  • 宗地结构
  • 值域范围
  • 栅格目录
  • 栅格数据集
  • 关系类
  • 复本
  • 复本数据集
  • 制图表达类
  • 资源
  • 逻辑示意图数据集
  • 测量数据集
  • Terrain
  • Tin
  • 工具箱
  • 拓扑
  • 工作空间
  • 工作空间扩展

NOT NULL

      1. Gdb_locks

需要进一步了解

      1. gdb_replicalog

每次复本导出或导入更改时,有关此操作的信息都会存储在 GDB_REPLICALOG 表中。

字段名

字段类型

描述

是否允许为空

id

integer

行的唯一标识符

NOT NULL

replicaid

integer

与 GDB_ITEMS 表中的 objectid 字段对应

NOT NULL

event

integer

指示是否已记录导入 (1) 或导出 (2)

NOT NULL

errorcode

integer

与事件相关联的错误代码;可以通过搜索“开发者帮助”来获得与错误相关的说明。如果事件执行成功,则会返回成功错误代码。

NOT NULL

logdate

datetime

事件发生的日期

NOT NULL

sourcebegingen

integer

一个事件中可导入或导出多代数据更改。该值指示所涉及的第一代更改的代编号。例如,如果已导入代 1 至代 3,则此字段将具有值 1。

NOT NULL

sourceendgen

integer

一个事件中可导入或导出多代数据更改。该值指示所涉及的最后一代更改的代编号。例如,如果已导入代 1 至代 3,则此字段将具有值 3。

NOT NULL

targetgen

integer

应用更改的代;该值可将更改应用于目标复本中的相应版本。

NOT NULL

      1. gdb_tables_last_modified

通过客户端应用程序缓存 GDB_TABLES_LAST_MODIFIED 表时,可以使用它来验证地理数据库系统表。

字段名

字段类型

描述

是否允许为空

table_name

nvarchar(160)

被修改的地理数据库系统表的名称

NOT NULL

last_modified_count

integer

记录系统表的修改次数;随每次修改递增

NOT NULL

    1. 不在使用的表

版本:10.6

sde_locators

sde_metadata

sde_layer_stats

sde_logfile_pool

sde_xml_columns

sde_xml_index_tags

sde_xml_indexes

    1. 属性域存储

属性域 - 存储在 gdb_items 系统表中。gdb_itemtypes 系统表中的字段将对象标识为属性域。

    1. 地理数据库副本

 gdb_itemsgdb_itemrelationshipsgdb_itemtypes  gdb_replicalog 系统表的数据库中进行追踪。

    1. 关系类存储

存储在 gdb_items  gdb_itemrelationships 系统表中。

    1. 地理数据库存储

可使用地理数据库存档追踪数据的历史事务时间。事务时间表示在数据库中添加、删除或更新要素的时刻。

当启用地理数据库存档功能后,系统将创建一个存档类。存档类为业务表的副本,其中包含业务表中的所有字段,另外还包括三个新字段:gdb_from_date、gdb_to_date 和 gdb_archive_oid。在参与传统版本的表或要素类上启用存档功能时,系统还会向 sde_archives 系统表添加一条记录。该条记录中存储了为进行存档而被启用的表的注册 ID 及该表相关联的存档类表的注册 ID。

存档类表的名称是原业务表名称后加一条下划线和 H。例如,如果启用名为 buildings 的要素类的存档功能,则系统会创建一个存档类 buildings_H。此存档类表将存储在与业务表相同的方案中

    1. 其它版本
      1. 来源1:

评估,arcgis版本应该小于 arcgis 10。

https://blog.csdn.net/lorry1113/article/details/83682878?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_title~default-2-83682878-blog-83682875.pc_relevant_vip_default&spm=1001.2101.3001.4242.2&utm_relevant_index=5

SDE数据库中表的说明

1、B表:属性表

2、F表:要素表

3、S表:索引表

4、A表:新增表

5、D表:删除表

6、Layers表:记录B表、F表、S表的关系

7、Table_Registry表:记录F表、S表、A表、D表的关系

8、Server_Config表:记录giomgr.defs文件的系统配置参数

9、dbtune表:记录dbtune.sde文件的存储方案参数

元数据表(meta-data tables),用于空间数据的描述和管理。

VERSION表 —— 记录ArcSDE服务器的版本号。ArcSDE I/O管理器靠检查该表以确定版本的兼容性。

LAYERS表   —— 记录数据库中的各个层,每个记录对应一个层。

GEOMETRY_COLUMNS表 —— 管理几何或矢量特征列。

RASTER_COLUMNS表 —— 管理栅格列。

TABLE_REGISTRY表 ——    管理已注册的LAYERS和multiversion表。

SPATIAL_REFERENCES表——记录数据库的坐标系、伪原点、ID码等。

STATES表 —— 记录状态。

VERSIONS表——记录数据版本。

*MVTABLES_MODIFIED表 —— 记录数据多版本信息。

SDE_LOGFILE表 —— 管理ArcSDE的logfiles。在ArcSDE 8之前,logfile是以系统文件方式存储的。

SDE_LOGFILE_DATA表 —— 管理ArcSDE的logfiles。

SDE数据库中表的分析

ArcSDE内一个要素类在关系数据库(以MS SQL Server为例)中有一系列的表, 每个表的作用不同。

Sde的一个FeatureClass包含以下表:

B表(与要素类名称同名,用来存储属性数据结构),表结构如下:

字段名称       类型 说明

GeometryID   Int     要素唯一ID

SHAPE           Int    与GeometryID值对应,备用字段?

其他用户定义字段

注:如果该要素类没有注册,B表有记录,如果该要素类已经注册,B表记录相应的转移到A表。

F表(F+LayerID,用来存储图形坐标、外边界矩形等图形信息)

字段名称                类型           说明

FID                          Int               要素唯一ID

NUMOFPTS             Int              坐标个数(岛、洞的坐标如何计数)

Entity                       SmallInt      要素类型代码(点、线、面)

EMINX                      Float          边界矩形

EMINY                      Float          边界矩形

EMAXX                      Float           边界矩形

EMAXY                     Float          边界矩形

EMINZ                      Float

EMAXZ                     Float

MIN_MEASURE        Float

MAX_MEASURE       Float

AREA                       Float          面积

LEN                           Float         长度

POINTS                    Image        坐标串(具体二进制内如何存储,如何提取)

S表(S+LayerID,用来存储地物空间索引,Sde采用正方形网格索引)

字段名称       类型 说明

SP_FID        Int        要素唯一ID

GX               Int       行号((网格左下点x坐标-图形区域最小x坐标)/网格大小)

GY               Int        列号((网格左下点y坐标-图形区域最小y坐标)/网格大小)

EMINX          Int        从名字看上去是要素的边界矩形坐标。但是添加一个要素进去后,却发现不是直接存储的地物边界矩形坐标,边界矩形的坐标在F表已经存储了,这里不知道干什么用?

EMINY          Int

EMAXX         Int

EMAXY         Int

A表(A+LayerID_Register,当要素类注册版本以后,该表存储原B表的数据,并记录数据状态)

字段名称             类型     说明

GeometryID           Int        要素唯一ID

SHAPE                   Int        似乎与GeometryID值相同,备用字段?

SDE_STATE_ID    Int        要素状态ID(每个操作就会+1)

其他用户定义字段

D表(D+LayerID_Register,仅当要素类注册版本之后,该表存在,并记录当前被删除的地物)

字段名称                            类型       说明

SDE_STATE_ID                 Int         删除要素的StateID

SDE_DELETES_ROW_ID   Int         删除要素的ID

DELETED_AT                    Int         删除操作的StateID

      1. 来源2:

评估,arcgis版本应该为arcgis 10.1。

https://blog.csdn.net/weixin_39744554/article/details/113998938

当基于Oracle或是SQL

Server安装ArcSde后,一般会生成十几张以GDB_开头的系统表,这些表一般为SDE中数据信息的描述,以下为本人对其中几张主要表的一点理解:

1、GDB_ObjectClasses表:记录所有SDE中注册过的普通表、FeatureClass,一般包括Name和ID字段,Name为在ArcCatalog中所看到的名字,ID为唯一标识,以后关于此对象的所有数据(如F表、S表)信息都以该ID表示;若删除该表中的某条记录,则该记录所对应的表在ArcCatalog中将无法看到。

2、GDB_FeatureClasses表:为所有空间表(FeatureClass)的描述信息,一般包括

ObjectclassID,featuretype,geometrytype,shapeField等字段,objectclassid与

GDB_ObjectClasses中的ID相对应,featuretype为特征类型(如:1为矢量,2为栅格等),geometrytype为空间几何体类型(如:1为点,2为线等),ShapeField为该空间表中空间图形存储的字段名(一般为Shape,在创建时也可定义为别的);若删除该表中的某条记录,则该记录所对应的featureclass在ArcCatalog中将无法看到。

3、GDB_FeatureDataset表:该表记录SDE中FeatureDataset信息,包括Owner,Name等;删除该表中的某条记录,则该记录所对应的featuredataset在ArcCatalog中将无法看到。

4、GDB_FieldInfo表:为SDE中所有表的字段信息,一般包含ClassID、FieldName,AliasName,IsEditable等字段,可直接通过操作此表来修改表或featureclass的字段的名称和别名。

5、GDB_Domains表:SDE中的Domain对象,具体可查看该表结构,若了解Domain,则比较容易理解该表。

6、GDB_SubTypes表:SDE中的SubType对象,具体可查看该表结构,若了解SubType,则比较容易理解该表。

7、GDB_RasterCatalogs表:该表记录SDE中的RasterCatalog的元数据信息,一般包含

objectclassid,rasterfield,israsterdataset,

其中,objectclassid与GDB_ObjectClasses中的ID对应,rasterField为在RasterCatalog表中存储

Raster的字段,israsterDataset标识是否为RasterDataset。

另外,SDE中的系统表还有十几张,但和我们应用关系最密切的主要为上面几张,其它的系统表,可以通过Oracle

官方地址:https://desktop.arcgis.com/zh-cn/arcmap/10.5/manage-data/gdbs-in-postgresql/system-tables-postgresql.htm 

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值