Оба enforce uniqueness, но:
- PK — NOT NULL, один на table, default clustered index (SQL Server).
- UNIQUE — допускает один NULL (SQL Server), default non-clustered.
- PK — главный идентификатор entity; UNIQUE — alternate business keys.
Итог
PK = NOT NULL + one clustered default; UNIQUE allows one NULL.