It is a composite key not keys.
Keys are not about data intregity they are about unique identifers. Keys identify records.
Unique indexes prevent the duplication of a combination of fields not keys.
I do not think this is correct, actually. We may just be arguing semantics, but I think it is rather more than that.
I prefer to side with the view expressed by dportas. incidentally, i am not sure whether dportas is actually a new member, as he has expressed many opinions on this topic - but maybe on the another forum. It is important to distinguish between an autonumber key which helps maintain referential integrity, and the underlying "business rule key" which actually drives the database, and in this respect, I do think these keys are about data integrity
if you have say, a sales order system, you may have these tables
order header
order lines
now an "order header" table may have 2 "effective primary" keys (say)
1. an autonumber key
2. the real key, consisting of account number + order number
key 2, by being described as unique prevents the system raising duplicate orders with the same order number. key 1 does nothing of the sort.
the autonumber key is in truth superfluous to some extent, but is more efficient than the composite key in terms of manipulating the database, and in terms of data storage, hence a lot of us use autonumber keys. the trade off is that the dbmanager has to maintain an additional key.
so the foreign key in the "order lines" table could be either of the 2 afore mentioned primary keys.
and as pat said, if a given table never forms part of the 1 side of a 1-to-many relation there is no practical benefit at all of adding an autonumber key to that table.
In this respect, the composite "business" key of customer + order number is clearly not just there for row identity reasons. This key will actually be the driving force in the system, maintaining integrity that the autonumber on its own just cannot supply.