Я досі не впевнений, чому http://en.wikipedia.org/wiki/Compound_key не проводили консультації. Це дуже чітко зазначає (і правильно):
У дизайні бази даних складний ключ - це ключ, який складається з 2 або більше атрибутів, що однозначно ідентифікують виникнення сутності. Кожен атрибут, що складається із складеного ключа, є простим ключем сам по собі.
Його часто плутають із складеним ключем, завдяки чому, навіть якщо це також ключ, який складається з 2 або більше атрибутів, що однозначно ідентифікують виникнення сутності, хоча б один атрибут, який складається з складеного ключа, сам по собі не є простим ключем.
Складений ключ складається з елементів, які можуть бути або не бути сторонніми ключами. Приклад: у таблиці деталей транзакції ключовим є (TransactionId, ItemNumber). Деталізація транзакції - це суб'єкт транзакції. TransactionId - це зовнішній ключ, посилаючись на таблицю транзакцій. ItemNumber - це не сам по собі ключ. Він лише однозначно ідентифікує предмет у контексті однієї транзакції.
Складний ключ - це ключ, за допомогою якого будь-яка частина ключа є стороннім ключем. Приклад: у системі бронювання готелів бронювання має складний ключ (GuestId, HotelId, ArrivalDate). GuestId ідентифікує Гість та посилається на таблицю гостей. HotelId ідентифікує готель та посилається на таблицю готелів. ArrivalDate визначає дату. Таблиця дат, на яку вона посилається, може бути, а може і не бути, але вона так само ідентифікує об'єкт (дату).
Також слід зазначити цей фактоїд: Простий ключ - це ключ, що складається з одного стовпця, тоді як складний ключ складається з двох або більше стовпців.