SQL Keys
Candidate Key
A candidate key is a combination of attributes that can be uniquely used to identify a database record without any extraneous data. Each table may have one or more candidate keys. One of these candidate keys is selected as the table primary key. Candidate keys are actually minimal superkeys - so both candidate key and minimal superkey mean exactly the same thing.
Foreign Key
A foreign key references/identifies unique columns in another table.
Natural Key
A natural key is a key that is formed of attributes that already exist in the real world. For example, a US citizen's social security number could be used as a natural key
Simple Key
A single column (AKA Attribute) that can uniquely identify rows in the table.
Superkey
A superkey is a combination of attributes that can be uniquely used to identify a database record. A table might have many superkeys. Candidate keys are a special subset of superkeys that do not have any extraneous information in them.
Primary Key
Any combination of columns that uniquely identifies columns in a table.
List Keys Types
Candidate Primary Secondary Surrogate / Artificial Foreign Unique Composite Simple Natural (AKA: Business Key, Domain Key)
Surrogate Key (AKA Artifical Key)
Surrogate keys are only used to act as a primary key. Surrogate keys are usually just simple sequential numbers - where each number uniquely identifies a row. For example, Sybase and SQL Server both have what's called an identity column specifically meant to hold a unique sequential number for each row.
Secondary Key
The Candidate Key options that are not selected to be the primary key are known as secondary keys.
Minimal Superkey
The minimum number of columns that can be used to uniquely identify a single row. Candidate keys are actually minimal superkeys - so both candidate keys and minimal superkeys mean exactly the same thing.