I agree that there are some inconsistencies about NULL values, but maybe you will understand it better if you look at it from another side. Two NULL values are not equal, but also they are not different - they are simply unknown. Unique constraint makes sure that any two values in the column are different.