No PostgreSQL, quando você define uma restrição de exclusividade em um conjunto de colunas, um valor NULL em uma ou mais dessas colunas NÃO é considerado duplicado / igual (permitindo assim valores duplicados em colunas não NULL).
Isso é de acordo com o padrão SQL, no entanto, não é verdade em todos os bancos de dados.