Joseph Mulholland

BE(Hons) student in 2010

Project: Experimenting with Natural and Surrogate Keys

Supervisor: PavleMogin


A natural database key is a candidate key that has a logical relationship to the attributes within a table row. A natural key is also called a domain key. A surrogate key in a database is a unique identifier for either an entity in the modeled world or a table row. It is not derived from the content of the table, but artificially introduced. Surrogate key values are generated as either sequence or random numbers. There is a hated debate among database designers today about advantages and disadvantages of using natural and surrogate keys. A Google search using the key phrase "surrogate key" returns millions of hits. The goal of this project is to investigate use of natural and surrogate keys in a number of different database structures. To build corresponding databases in PostgreSQL environment, to measure, analyze, and compare database performance in terms of: memory space occupation, number and height of indexes, update and query performance.