criar chave estrangeira sem uma chave primária

Por que é necessário ter uma chave primária em uma coluna de uma tabela à qual uma coluna da outra tabela possui referências de chave estrangeir

create table D(Did int)
create table E(Eid int foreign key references D(Did))

A consulta acima fornece erro:

There are no primary or candidate keys in the referenced table 'D' that match
the referencing column list in the foreign key 'FK__E__Eid__79C80F94'.

questionAnswers(4)

yourAnswerToTheQuestion