Não concorde com a resposta sugerida. A resposta curta é: NÃO .
O objetivo da chave primária é identificar exclusivamente uma linha na tabela para formar um relacionamento com outra tabela. Tradicionalmente, um valor inteiro auto-incrementado é usado para essa finalidade, mas há variações para isso.
No entanto, existem casos, por exemplo, registro de dados de séries temporais, em que a existência de uma chave desse tipo simplesmente não é necessária e apenas ocupa memória. Tornar uma linha única é simplesmente ... não necessária!
Um pequeno exemplo: Tabela A: LogData
Columns: DateAndTime, UserId, AttribA, AttribB, AttribC etc...
Nenhuma chave primária é necessária.
Tabela B: Usuário
Columns: Id, FirstName, LastName etc.
Chave Primária (Id) necessária para ser usada como uma "chave estrangeira" na tabela LogData.