# Geodatabase (Esri)

A Geodatabase is a proprietary GIS file format developed in the late 1990s by Esri (a GIS software vendor) to represent, store, and organize spatial datasets within a geographic information system. A geodatabase is both a logical data model and the physical implementation of that logical model in several proprietary file formats released during the 2000s. The geodatabase design is based on the spatial database model for storing spatial data in relational and object-relational databases. Given the dominance of Esri in the GIS industry, the term "geodatabase" is used by some as a generic trademark for any spatial database, regardless of platform or design.

## History

The origin of the geodatabase was in the mid-1990s during the emergence of the first spatial databases. One early approach to integrating relational databases and GIS was the use of server middleware, a third-party program that stores the spatial data in database tables in a custom format, and translates it dynamically into a logical model that can be understood by the client software. In 1996, Esri purchased an early middleware product called Spatial DataBase Engine and rebranded it ArcSDE. Initially, ArcSDE stored and delivered simple vector datasets that looked very similar to shapefiles, but the need for a more robust data model emerged as Esri's Shapefile format became a de facto standard for vector spatial data, even as its shortcomings limited its use in enterprise applications. At the same time, the Arc/INFO coverage format was becoming obsolete after 20 years, unable to handle growing expectations of GIS users. Another motivating factor was that even though several relational database vendors were introducing their own spatial extensions (with the notable exception of Esri's preferred Microsoft SQL Server), their structures and interfaces varied and Esri wanted its users to see all spatial data in the same apparent structure regardless of how it was stored internally.$^{:240}$
At the end of 1999, Esri introduced the Geodatabase model as the native format used in its new ArcGIS software (branded Version 8.0 to maintain continuity with Arc/INFO). Initially, it could be implemented as a multiuser geodatabase in ArcSDE on a server or the personal geodatabase locally.$^{:12}$ Support for topology rules, linear referencing, and survey data were added in 2003 (with ArcGIS 8.3). Network data was added to the geodatabase in 2005 (ArcGIS 9.1), and vector terrain ( TIN, LIDAR) in 2006 (ArcGIS 9.2). Also at the 9.2 release, ArcSDE was subsumed into ArcGIS Server and the multiuser database format was rebranded the enterprise geodatabase.
Due to shortcomings in the personal geodatabase format (especially file size limitations in Microsoft Access), Esri developed a more robust custom file format, released in 2006 (ArcGIS 9.2) as the file geodatabase. It also released a product called the workgroup geodatabase that included the free Microsoft SQL Server Express for smaller multi-user applications, which has since been discontinued. Eventually, the middleware components for reading and writing the geodatabase spatial database structure were incorporated into ArcGIS desktop, eliminating the need for ArcSDE to be running on the server end. The most recent addition has been the mobile geodatabase format in 2020 (ArcGIS Pro 2.7), which uses SQLite as the backend to store the entire geodatabase as a single file. This replaces the personal geodatabase, which is no longer supported.

## Applications

Geodatabases, being a common format for GIS datasets, have applications anywhere GIS are widely employed. These applications are so basic often times researchers do not mention their use in studies. There are several fields where their use is extensively documented, including public health, crime analysis, and resource management.

### Epidemiology

Since John Snow famously identified the source of a cholera outbreak, spatial data has been central to epidemiology and public health. In recent years, information that is relevant to public health has increased exponentially. Leveraged correctly, this data can allow for a rapid response to emerging diseases. To accomplish this, geodatabases are employed extensively to organize data and allow for the identification of space-time patterns. Examples of the use of geodatabase to manage epidemiological data include linking environmental and health data to find patterns. They were used extensively to organize data related to West Nile virus epidemics, and the COVID-19 pandemic. This use includes analyzing misinformation, and the infodemic, surrounding COVID-19.

### Resources management

Geospatial data around resource management plays is extremely complex. Factors such as the forest, water, and mineral resources being managed are obvious; however, governance and socioeconomic factors also play a large role. It is common practice to employ geodatabases to manage these diverse datasets. They have also been used in organized Early Detection Rapid Response (EDRR) efforts to treat invasive plant species to protect environmental resources.

### TIGER files

In 1995 The United States Census Bureau made the Topologically Integrated Geographic Encoding and Referencing, or TIGER, Mapping Service available to the public, facilitating desktop and Web GIS by hosting US boundary data. This data availability, facilitated through the internet, silently revolutionized cartography by providing the world with authoritative boundary files, for free. Today, these files, which contain up-to-date boundaries for the United States states, counties, and more, are provided to the public in prepackaged geodatabases.

## Logical Model

To the user, a geodatabase looks like a collection of datasets, including some containing geographic data and some auxiliary elements that add functionality to the data. This user view is identical, regardless of how the geodatabase is stored (although enterprise geodatabases add some functions).

### Datasets

Datasets contain geographic data. A geodatabase can contain spatially referenced data in vector or raster formats, or non-spatially referenced data in tabular format. Each dataset contains information about any number of individual items, but typically all of the items in a dataset are of the same theme (e.g., temperature measurements, roads in a city) and have the same set of properties.

#### Table

    A traditional relational database table without any spatial information. Called a "business table" in early versions of ArcGIS.

#### Feature class

    A dataset based on the vector data model, storing a list of objects with a geometric shape in one column and a set of attributes in additional columns. While this may seem similar to earlier vector file formats such as the shapefile, several enhancements have been added. In addition to the basic points, lines, and polygons, the shape data types can also include annotation (text), dimensions (graphical depictions of distance), multipoints (many points in a single shape), multipatch three-dimensional objects.$^{:142}$ Each vertex in a line can be three-dimensional (x,y,z) and can also store a measurement value (e.g. a highway milepost value). Lastly, line segments can be curved as circular arcs or Bézier curves in addition to the traditional straight lines.$^{:244}$

#### Raster dataset

    A raster grid use the same data model as most raster GIS and image files. Geodatabase rasters using internal tiling and pyramid structures to improve drawing and analysis performance, especially for very large grids.

### Auxiliary elements

A number of elements can be included that are generally dependent on one or more datasets, adding functionality such as quality control. Some of these are called controller datasets

#### Feature dataset

    A collection of several feature classes within the geodatabase, roughly similar to a folder in a file system. All of the feature classes in a feature dataset share the same spatial reference system.$^{:54}$

#### Versioning

    In an enterprise geodatabase on a database server (not a file geodatabase), a feature class or table can be versioned to facilitate multi-user editing. As in other software version control systems, previous versions of the data are stored so that undesirable edits can be rolled back.

#### Attribute domain

    A list of valid values for a quantitative or qualitative property (e.g. land use type codes).$^{:28}$ These facilitate data entry (the user can pick a value from a list rather than trying to remember the exact text) and quality control (reducing invalid values)

#### Subtype

    Partitions a table or feature class into subcategories, with common attributes and other behaviors.$^{:32}$

#### Attribute index

    Stored sorting order for one or more columns in a table or feature class, increasing search and processing performance.$^{:71}$

#### Relationship class

    A configuration of a relationship between two tables or feature classes in the relational database sense, including specifying primary keys and foreign keys. This facilitates table joins and cross-table selections.

#### Topology

    A list of rules for valid topological relationships between features in one or more feature classes (e.g., "county polygons cannot overlap," "state polygons must align with county polygons"). These can be used for checking data quality and correcting topological errors.$^{:55–56}$

#### Terrain dataset (formerly TIN dataset)

    A triangulated irregular network constructed from feature classes containing three-dimensional points and lines.

#### Network dataset, Utility network

    Two different approaches to constructing a topologically-connected network from feature classes representing linear segments (and often point junctions).$^{:257}$ The network dataset has functionality designed primarily for transport network analysis (pedestrian, road, rail), while the utility network is designed for other infrastructure, such as water, sewer, power, and telecommunications networks.

#### Parcel fabric

    An integrated dataset for storing cadastral surveying data, which describe real property parcels using distance-direction measurements (traditionally called COGO for coordinate geometry). Feature classes are used to store monument points, boundary lines, and parcel polygons with topological bindings between them.

#### Linear referencing system (LRS)

    An augmentation of a line feature class that enables attributes to referenced to points or segments within each line rather than attached to the line as a whole. Examples include storing accident locations or real-time traffic counts along a road.

#### Mosaic dataset

    A virtual composite raster grid composed of images that are stored as separate raster files. This is stored as a polygon feature class with a row for each image including image properties such as image filenames and georeferencing information, and the shape representing the desired display extent of the image, enabling seamless composition of overlapping images.

## Implementations

Since its first introduction in 1999, the geodatabase has been available on a number of platforms to meet various project needs.

### Enterprise Geodatabase (formerly Multiuser Geodatabase)

    The data is stored in a third-party relational database management system on a server. This allows for the implementation of the geodatabase within various distributed GIS architectures, including Internet and Web GIS through the use of ArcIMS (Arc Internet Mapping Service). Originally, only commercial RDBMS software was supported: Microsoft SQL Server, Oracle, Informix, or IBM Db2. Eventually, support for PostgreSQL and SAP HANA were added and Informix was discontinued. The spatial data in a feature class can either be stored using the geometry datatype provided by the RDBMS native spatial extension (Oracle Spatial, PostGIS, etc.) or Esri's proprietary ST_GEOMETRY format, all of which are based on the Open Geospatial Consortium Simple Features specification, but with different encoding structures.$^{:13}$ Currently, an ArcGIS Enterprise (formerly ArcGIS Server) license must be purchased to create an enterprise geodatabase, even if no server software is installed. Each dataset (feature class, table, raster, auxiliary element) is stored as a normal table, but the geodatabase adds several system tables to provide overall organization (in ArcGIS 8-9, there were many more system tables, which were streamlined in ArcGIS 10):
* GDB_Items: a "table of contents" for all of the elements of the geodatabase as the user will see them, pointing to the corresponding physical tables
* GDB_ItemTypes: the type of dataset of each table (table, feature class, etc.)
* GDB_ItemRelationships: information about groupings of tables, such as feature datasets
* GDB_ItemRelationshipTypes: lookup table of types of item relationships
* GDB_DBTune: general parameters for the geodatabase
* GDB_SpatialRefs: a list of the spatial reference systems used in the datasets
* GDB_SystemCatalog: a list of all tables, including data and system tables

### Personal Geodatabase

    One of the original options, storing data in a single Microsoft Access file (.mdb), intended for local storage for a single user without needing a server.$^{:12}$ Although the format was relatively straightforward, using the same table structure as the multiuser geodatabase, there were severe limitations, including a 2Gb file size limit and the lack of 64-bit Access libraries.$^{:240}$ This was gradually phased out in favor of the file and mobile geodatabases, and it is no longer supported in ArcGIS Pro.

### File Geodatabase

    Introduced in 2006 to replace the personal geodatabase. This is a proprietary format owned by Esri, although other software developers have reverse-engineered it and Esri provides a read/write library for use in other software. It is not a single file, but a collection of files (roughly one for each data or system table in the relational database geodatabase) collected in a folder with a .gdb extension. The following file types are included:
* a########.gdbtable: a table (system table, data table, feature class, raster) consisting of rows with geometry and/or attribute columns
* a########.gdbtablx: a lookup list of the byte offset of each row in the data table
* a########.gdbindexes: a list of all the indexes for a data table
* a########.name.atx: an attribute index for a data table, listing the rows in the sorted order of the selected attribute column. A single data table can have multiple indices.
* a########.spx: a spatial index for a feature class table to speed up shape access, using a gridded spatial index.
* a########.cdf: a compressed version of one of the above files
* a00000001.* - a00000008.*: system tables, as in the enterprise geodatabase (GDB_SystemCatalog, GDB_SpatialRefs, GDB_DBTune, etc.)

### Mobile Geodatabase

    The newest option, structured the same as the enterprise geodatabase but stored as a single file in the SQLite format, a de facto standard for sharing and storing data on mobile devices. Initially released with limited functionality, it now supports all of the geodatabase elements. Despite the common database, this is very different from a Geopackage model.

## Application support

The ability to read and write geodatabase format is not limited to Esri products; other software are also able to read & write this format, including:
* ENVI – Remote sensing software owned by Harris Geospatial
* ERDAS IMAGINE – Remote sensing company owned by Hexagon AB
* GeoDa – Free geovisualization and analysis software
* QGIS – Open-source desktop GIS software