What Does Surrogate Key Mean?
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.
Techopedia Explains Surrogate Key
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:
- The value is never reused and is unique within the whole system.
- It is system generated.
- The value cannot be manipulated by the user or application.
- The value is not an amalgam of different values from multiple domains.