Ainda não sei por que http://en.wikipedia.org/wiki/Compound_key não foi consultado. Ele afirma muito claramente (e está correto):
No design do banco de dados, uma chave composta é uma chave que consiste em 2 ou mais atributos que identificam exclusivamente uma ocorrência de entidade. Cada atributo que compõe a chave composta é uma chave simples por si só.
Isso geralmente é confundido com uma chave composta, na qual, embora também seja uma chave que consiste em 2 ou mais atributos que identificam exclusivamente uma ocorrência de entidade, pelo menos um atributo que compõe a chave composta não é uma chave simples.
Uma chave composta é composta de elementos que podem ou não ser chaves estrangeiras. Exemplo: Em uma tabela de detalhes da Transação, a chave é (TransactionId, ItemNumber). Um detalhe da transação é uma subentidade de uma transação. TransactionId é uma chave estrangeira, referenciando a tabela Transações. O ItemNumber não é uma chave por si só. Ele identifica apenas um item exclusivamente no contexto de uma única transação.
Uma chave composta é uma chave pela qual qualquer parte da chave é uma chave estrangeira. Exemplo: em um sistema de reserva de hotel, uma reserva possui a chave composta (GuestId, HotelId, ArrivalDate). GuestId identifica um convidado e faz referência à tabela Convidados. HotelId identifica um hotel e faz referência à tabela de hotéis. ArrivalDate identifica uma data. Pode ou não haver uma tabela Datas que ela faça referência, mas identifica uma Entidade (uma Data) de qualquer maneira.
Também é digno de nota o fato: uma chave simples é uma chave composta de uma coluna, enquanto uma chave composta é composta de duas ou mais colunas.