Many geodatabases utilize relational databases such as Oracle, IBM Db2, or Microsoft SQL Server for data storage and management of geographic information. This enables the geodatabase to be scaled to extremely large sizes and support a large number of users and editors. These geodatabases also support a number of critical data management workflows, such as versioning, replication, and historical archiving.
Physical storage of geodatabases
The primary mechanism for geodatabase storage is via tables. Tables are stored either as files on disk or within the contents of a database management system (DBMS) as follows:
|Type of geodatabase||Data storage method|
A file system folder containing data files
Desktop geodatabase (included with ArcGIS Desktop [Desktop Standard or Desktop Advanced], and ArcGIS Engine with Geodatabase Update) and workgroup geodatabase (ArcGIS Server at the Workgroup level)
Microsoft SQL Server Express Edition
Enterprise geodatabase (requires ArcGIS Enterprise level. This requires that you acquire your own DBMS.)
Storing and managing spatial data
Geodatabase storage in a database contains two types of tables—dataset tables (user-defined tables) and system tables.
- Dataset tables—Each dataset in the geodatabase is stored in one or more tables. The dataset tables work with the system tables to manage data.
- System tables—The geodatabase system tables keep track of the contents of each geodatabase. They essentially describe the geodatabase schema that specifies all dataset definitions, rules, and relationships. These system tables contain and manage all the metadata required to implement geodatabase properties, data validation rules, and behaviors.
For example, a simple feature class stored in a geodatabase within a SQL Server database using binary geometry storage is made up of a business table, an associated feature (f) table, and a spatial index (s) table. These tables work with a set of system tables: the i table, the gdb_items, sde_table_registry, sde_layers, and sde_spatial_references system tables. These are used to track information about the feature class.
Each DBMS has a slight variation in the set of tables and columns used to store and manage a geodatabase. The type of DBMS you are using to store your geodatabase impacts the physical storage schema.
Geodatabases also use triggers, functions, stored procedures, and user-defined types in the database to implement functionality and maintain consistency. A detailed discussion of these is not necessary, since you would not need to interact with most of these database objects.
If you are interested in accessing the information in your geodatabase using SQL, see SQL and enterprise geodatabases to get started.