应用场景:
当我们在使用基于PostgreSQL的企业级地理数据库时,有时因为某个问题可能需要追踪该地理数据库的行为,以便于分析具体原因,这时候就需要访问企业级地理数据库的系统表来进行分析(一般只执行查询操作)。
注:不得使用 ArcGIS 软件或 SDK 以外的任何其他软件更改系统表及其内容。但是,您可以使用 SQL 来查看系统表的内容
系统表列表:
https://desktop.arcgis.com/zh-cn/arcmap/10.6/manage-data/gdbs-in-postgresql/system-tables-postgresql.htm
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 |
SDE_branch_tables_modified 表用于存储分支表编辑
字段名 |
字段类型 |
描述 |
是否允许为空 |
branch_id |
Int4 |
分支ID |
NOT NULL |
registration_id |
Int4 |
表注册Id |
NOT NULL |
edit_moment |
timestamp |
编辑时间点 |
NOT NULL |
SDE_branch 分支管理表
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 |
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 |
字段名 |
字段类型 |
描述 |
是否允许为空 |
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 |
SDE_dbtune 表用于存储 ArcSDE 数据对象(如要素类)的配置关键字。
字段名 |
字段类型 |
描述 |
是否允许为空 |
keyword |
nvarchar(32) |
配置关键字 |
NOT NULL |
parameter |
nvarchar(32) |
配置参数 |
NOT NULL |
config_string |
nvarchar(2048) |
配置参数的值 |
NOT NULL |
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 |
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) |
图层锁的类型包括:
|
NOT NULL |
minx |
bigint |
用于在区域锁定期间定义区域内要素的边界框的最小 x 坐标 |
|
miny |
bigint |
用于在区域锁定期间定义区域内要素的边界框的最小 y 坐标 |
|
maxx |
bigint |
用于在区域锁定期间定义区域内要素的边界框的最大 x 坐标 |
|
maxy |
bigint |
用于在区域锁定期间定义区域内要素的边界框的最大 y 坐标 |
|
lock_time |
datetime |
获取图层锁的日期和时间 |
NOT NULL |
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 |
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 |
用于存储下列图层属性:
|
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 |
用于存储高精度坐标参考,以便在数据从基本精度向高精度转换时对数据进行投影 |
SDE_lineages_modified 表包含状态谱系 ID 及其最近一次修改的时间戳。
字段名 |
字段类型 |
描述 |
是否允许为空 |
lineage_name |
bigint |
与 SDE_state_lineages 表中的 lineage_name 字段对应 |
NOT NULL |
time_last_modified |
datetime |
最近一次修改谱系的日期和时间 |
NOT NULL |
SDE_locators 表用于存储与定位器对象相关的信息。
字段名 |
字段类型 |
描述 |
是否允许为空 |
locator_id |
integer |
定位器的唯一标识符 |
NOT NULL |
name |
nvarchar(32) |
定位器的名称 |
NOT NULL |
owner |
nvarchar(32) |
定位器所有者的用户名 |
NOT NULL |
category |
nvarchar(32) |
定位器的类别;地址定位器包含地址的类别值 |
NOT NULL |
type |
integer |
定位器类型;值的含义如下:
|
NOT NULL |
description |
nvarchar(64) |
定位器的描述 |
无论使用何种类型的日志文件,SDE_logfile_pool 表一经创建即会保存在地理数据库中。有关此表和其他日志文件表的说明,请参阅 SQL Server 地理数据库中的日志文件表。
未来版本可能会被删除
Sde_multibranch_table多分支表
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 |
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 |
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 |
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 |
SDE_server_config 表用于存储 ArcSDE 服务器配置参数。这些参数可定义 ArcSDE 软件使用内存的方式。
字段名 |
字段类型 |
描述 |
是否允许为空 |
prop_name |
nvarchar(32) |
初始化参数名称 |
NOT NULL |
char_prop_value |
nvarchar(512) |
初始化参数的字符型值 |
NOT NULL |
num_prop_value |
integer |
初始化参数的整型值 |
NOT NULL |
SDE_state_lineages 表用于存储各状态的谱系。会为每个版本创建一个新的谱系名称。每当添加一个状态时,都会添加谱系名称和状态 ID。当添加的状态是新版本时,还会添加父状态的祖先状态谱系(包括该谱系名称)。
要返回某个版本的正确视图,通过查询其状态谱系可识别每次对该版本进行更改时所记录的所有状态。通过此状态列表,可确定正确表示版本的表行。
字段名 |
字段类型 |
描述 |
是否允许为空 |
lineage_name |
bigint |
用于描述状态的名称 |
NOT NULL |
lineage_id |
bigint |
各状态的唯一标识符 |
NOT NULL |
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) |
状态锁的类型;可能的类型包括:
|
NOT NULL |
lock_time |
datetime |
获取状态锁的日期和时间 |
NOT NULL |
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 |
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) |
表锁的类型
|
NOT NULL |
lock_time |
datetime |
获取表锁的日期和时间 |
NOT NULL |
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 |
用于存储该表的注册属性,包括:
|
NOT NULL |
registration_date |
integer |
该表注册到 ArcSDE 的日期 |
NOT NULL |
config_keyword |
nvarchar(32) |
该表注册到 ArcSDE 时指定的配置关键字;确定该表及其索引在数据库中的存储方式 |
|
minimum_id |
integer |
该表的最小 row_id 值 |
|
imv_view_name |
nvarchar(32) |
指定表的版本化视图的名称 |
|
SDE_tables_modified 表用于记录对系统表做出更改的时间。该信息用于避免对无改动的表的不必要读取。
字段名 |
字段类型 |
描述 |
是否允许为空 |
table_name |
sysname |
修改的 ArcSDE 系统表的名称 |
NOT NULL |
time_last_modified |
datetime |
修改此表的日期和时间 |
NOT NULL |
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 |
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 |
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 |
表示属性对的属性集 |
GDB_ITEMRELATIONSHIPTYPES 表中包含有关 GDB_ITEMS 表中各对象之间存在的关系类型的数据。
字段名 |
字段类型 |
描述 |
是否允许为空 |
objectid |
integer |
行的唯一标识符 |
NOT NULL |
uuid |
uniqueidentifier |
项的唯一标识符 |
NOT NULL |
name |
nvarchar(226) |
关系类型名称;包括下列值:
|
NOT NULL |
forwardlabel |
nvarchar(226) |
根据源项的上下文描述关系的标注 |
|
backwardlabel |
nvarchar(226) |
根据目标项的上下文描述关系的标注 |
|
origItemtypeid |
uniqueidentifier |
与 GDB_ITEMTYPES 表中的 UUID 对应 |
|
destItemtypeid |
uniqueidentifier |
与 GDB_ITEMTYPES 表中的 UUID 对应 |
NOT NULL |
iscontainment |
smallint |
指示源项的存在是否控制目标对象的存在 |
|
项是指在 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 |
指示表的要素类型 对于要素类和栅格目录来说,可能的值如下:
对于关系类,会存储关系类的基数。可能的值有:
对于拓扑,该列用于存储拓扑 ID。 |
|
datasetsubtype2 |
integer |
指示表的几何类型 对于要素类和栅格目录来说,可能的值如下:
对于关系类,该列中的值用于指示关系类是否属性化。可能的值有:0 = 非属性化,1 = 属性化。 |
|
datasetinfo1 |
nvarchar(255) |
存储要素类的形状字段名称 |
|
datasetinfo2 |
nvarchar(255) |
存储参与拓扑的要素类的信息 |
|
definition |
xml |
存储有关项的信息 |
|
documentation |
xml |
项的数据定义(元数据) |
|
iteminfo |
xml |
项的存储信息(如符号系统),与基础数据集相互独立 |
|
shape |
geometry |
项的空间范围 |
NOT NULL |
GDB_ITEMTYPES 表用于存储有关 GDB_ITEMS 表中每个项的对象类型的信息。
字段名 |
字段类型 |
描述 |
是否允许为空 |
objectid |
integer |
行的唯一标识符 |
NOT NULL |
uuid |
uniqueidentifier |
项的唯一标识符 |
NOT NULL |
parenttypeid |
nvarchar(226) |
此表 (GDB_ITEMTYPES) 中 UUID 的外键 |
NOT NULL |
name |
uniqueidentifier |
项类型的名称;包括下列值:
|
NOT NULL |
需要进一步了解
每次复本导出或导入更改时,有关此操作的信息都会存储在 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 |
通过客户端应用程序缓存 GDB_TABLES_LAST_MODIFIED 表时,可以使用它来验证地理数据库系统表。
字段名 |
字段类型 |
描述 |
是否允许为空 |
table_name |
nvarchar(160) |
被修改的地理数据库系统表的名称 |
NOT NULL |
last_modified_count |
integer |
记录系统表的修改次数;随每次修改递增 |
NOT NULL |
版本:10.6
sde_locators
sde_metadata
sde_layer_stats
sde_logfile_pool
sde_xml_columns
sde_xml_index_tags
sde_xml_indexes
属性域 - 存储在 gdb_items 系统表中。gdb_itemtypes 系统表中的字段将对象标识为属性域。
在 gdb_items、gdb_itemrelationships、gdb_itemtypes 和 gdb_replicalog 系统表的数据库中进行追踪。
存储在 gdb_items 和 gdb_itemrelationships 系统表中。
可使用地理数据库存档追踪数据的历史事务时间。事务时间表示在数据库中添加、删除或更新要素的时刻。
当启用地理数据库存档功能后,系统将创建一个存档类。存档类为业务表的副本,其中包含业务表中的所有字段,另外还包括三个新字段:gdb_from_date、gdb_to_date 和 gdb_archive_oid。在参与传统版本的表或要素类上启用存档功能时,系统还会向 sde_archives 系统表添加一条记录。该条记录中存储了为进行存档而被启用的表的注册 ID 及该表相关联的存档类表的注册 ID。
存档类表的名称是原业务表名称后加一条下划线和 H。例如,如果启用名为 buildings 的要素类的存档功能,则系统会创建一个存档类 buildings_H。此存档类表将存储在与业务表相同的方案中
评估,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
评估,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