Within a database, the surrogate key is a unique identifier system wide. The value of a surrogate key generally has many attributes including never being manipulated by a system or a user, contains no semantic meaning, and not being composed of multiple values. The surrogate key is not derived from application data, unlike a natural (or business) key which is derived from application data. Having the key independent of all other columns insulates the database relationships from changes in data values or database design (making the database more agile) and guarantees uniqueness.