Tech moves fast! Stay ahead of the curve with Techopedia!
Join nearly 200,000 subscribers who receive actionable tech insights from Techopedia.
A surrogate key is a unique identifier used in databases for a modeled entity or an object. It is a unique key whose only significance is to act as the primary identifier of an object or entity and is not derived from any other data in the database and may or may not be used as the primary key. The usual surrogate key used is a unique sequential number.
A surrogate key represents an entity that exists in the outside world and modeled within the database and made visible to the application and the user, or it can represent an object within the database itself and be invisible to the user and application. In both cases, the surrogate key is internally generated.
A surrogate key is not always used as a primary key, and this depends on whether the database is of the current or temporal kind. A current database only stores valid current data and requires a one-to-one association between the surrogate key in the modeled world and the primary key of the database, in which case the surrogate may act as the primary key. However, in a temporal database, there is a many-to-one association between the primary keys and the surrogate key, which means that there may be multiple objects within the database that are associated with the surrogate key, so it cannot be used as a primary key.
A surrogate key has the following characteristics: