Enterprise geodatabase system tables

Enterprise geodatabases are collections of tables, views, stored procedures, and functions in a database.

There are two types of tables in enterprise geodatabases: tables that store user data and system tables that implement geodatabase functionality in the database. Knowing which tables participate in geodatabase datasets and functionality will help you, as a database administrator, to know which tables should not be altered using SQL.

User data

Datasets store the geographic data that people create, map, analyze, publish, and share. Datasets are the objects you see in an enterprise geodatabase when you connect to it from ArcGIS Pro or an ArcGIS Desktop application.

Feature classes and nonspatial tables

When you connect to an enterprise geodatabase in ArcGIS, you can create tables and feature classes to store data. Both create a table in the underlying database; the difference between them is the presence of a spatial column in the feature class table. The person who creates the table or feature class defines the table name.

A feature class is a collection of spatial features, all of the same geometric type (point, line, polygon, multipoint, annotation, dimension, or multipatch). How a feature class is stored in the database depends on the spatial data type used for the spatial column. If the feature class uses Microsoft SQL Server spatial data types, the feature class is a single table with a spatial column. If the feature class uses compressed binary storage, the feature class is composed of three tables: a base table (also called a business), a feature table, and a spatial index table. The base table's name is defined by the person who creates the feature class. The feature and spatial index tables are named F_<layer_ID> and S_<layer_ID>, respectively. The layer_ID corresponds to the base table's layer ID in the SDE_layers system table.

You build on these base feature class or nonspatial tables to implement geodatabase functionality in datasets.

Datasets

Most dataset types are composed of the table you see in ArcGIS Pro or ArcGIS Desktop applications plus system tables that help to implement the functionality that is unique to that type of dataset. These datasets are sometimes referred to as controller datasets or extension datasets. You can see the supporting system tables if you connect to the database through a database management application.

See Dataset system tables for a list of these types of tables.

System tables and geodatabase functionality

Geodatabase system tables include the core system tables that track geodatabase objects and behavior and a few supporting tables that implement geodatabase properties in a database. As these are system tables, you do not see them when you connect to an enterprise geodatabase from an ArcGIS app.

Core geodatabase system tables are stored in the schema of the geodatabase administrator. Some geodatabase functionality—such as domains, subtypes, attribute rules, and contingent attribute values—is implemented through fields in these core system tables. Other functionality—such as geodatabase archives and traditional versions—is implemented through a combination of columns in the dataset, core system tables, and supporting system tables. When supporting system tables are present, they are stored in the schema of the database user who enabled the geodatabase functionality. For example, when you enable geodatabase archiving on a feature class, fields are added to the feature class table, the archive is tracked in the core system archives table, and a history table is created in your schema.

Beginning with ArcGIS Enterprise 10.9 and ArcGIS Pro 2.7, system tables for geodatabases in SQL Server no longer store database names, which means you can rename the database if you need to, such as when you need to restore a database backup to the same SQL Server instance to retrieve lost data, if you need to provide a template geodatabase, or you migrate the database from on-premises to the cloud.

See Geodatabase system tables in SQL Server for a list of core geodatabase system tables and system tables that implement specific geodatabase functionality.