Surrogate Key

From GM-RKB
Jump to navigation Jump to search

A Surrogate Key is a database key that ...



References

2017

  • (Wikipedia, 2017) ⇒ https://en.wikipedia.org/wiki/surrogate_key Retrieved:2017-4-17.
    • A surrogate key (or synthetic key, entity identifier, system-generated key, database sequence number, factless key, technical key, or arbitrary unique identifier) in a database is a unique identifier for either an entity in the modeled world or an object in the database. The surrogate key is not derived from application data, unlike a natural (or business) key which is derived from application data.

2017

  • (Wikipedia, 2017) ⇒ https://en.wikipedia.org/wiki/surrogate_key#Definition Retrieved:2017-4-17.
    • There are at least two definitions of a surrogate:
      1. Surrogate (1) – Hall, Owlett and Todd (1976): A surrogate represents an entity in the outside world. The surrogate is internally generated by the system but is nevertheless visible to the user or application.[1]
      2. Surrogate (2) – Wieringa and De Jonge (1991): A surrogate represents an object in the database itself. The surrogate is internally generated by the system and is invisible to the user or application.
    • The Surrogate (1) definition relates to a data model rather than a storage model and is used throughout this article. See Date (1998).

      An important distinction between a surrogate and a primary key depends on whether the database is a current database or a temporal database. Since a current database stores only currently valid data, there is a one-to-one correspondence between a surrogate in the modeled world and the primary key of the database. In this case the surrogate may be used as a primary key, resulting in the term surrogate key. In a temporal database, however, there is a many-to-one relationship between primary keys and the surrogate. Since there may be several objects in the database corresponding to a single surrogate, we cannot use the surrogate as a primary key; another attribute is required, in addition to the surrogate, to uniquely identify each object.

      Although Hall et al. (1976) say nothing about this, othershave argued that a surrogate should have the following characteristics:

      • the value is unique system-wide, hence never reused
      • the value is system generated
      • the value is not manipulable by the user or application
      • the value contains no semantic meaning
      • the value is not visible to the user or application
      • the value is not composed of several values from different domains.

  1. P A V Hall, J Owlett, S J P Todd, "Relations and Entities", Modelling in Data Base Management Systems (ed GM Nijssen), North Holland 1976.