Isn't it simpler than that? A primary key is the ONLY "real" key to a table - the table is indexed on the primary key. A unique key is any column or combination of columns that MUST have a unique value. The table may or may not be indexed on a unique key... that's up to the DBA and the usage requirements of a table. In effect, a "key" is nothing more than a value (or values) that can be contained within a column.