Ответ 1
Согласно документации Postgres (http://www.postgresql.org/docs/9.2/static/sql-createtable.html):
Технически, PRIMARY KEY является просто комбинацией UNIQUE и NOT NULL, но идентификация набора столбцов в качестве первичного ключа также предоставляет метаданные о структуре схемы, поскольку первичный ключ подразумевает, что другие таблицы могут полагаться на этот набор столбцов в качестве уникальный идентификатор для строк.
Исходя из моего опыта, я создал множество таблиц без них. Но некоторые решения для репликации требуют наличия первичного ключа или идентификатора одного столбца на строку.