Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Surrogate key
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Definition == There are at least two definitions of a surrogate: ; 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.<ref>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. </ref> ; 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, others{{specify|date=December 2010}} have argued that a surrogate should have the following characteristics: * the value is 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.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)