• Hi Tom,

    I don't know the 1979 paper (never been able to find it online), but I don't think it matters much. In my opinion, academics tend to argue so much about terminology that they never realise that they actually agree about the underlying concepts.

    If you want your columns to be atomic, then a "Birthday" column can only hold a valid date that is the birthday of the represented entity - or nothing at all if (for whatever reason), the birthday of that entity is not recorded in the database. The "nothing at all" needs some representation. In a pen and paper table, that would be an empty cell or a dash (to indicate the author did not forget to fill the cell, but left it blank intentionally). In a relational database, the representation for "nothing at all" is called NULL (and the actual bits-and-bytes representation is left to the vendor). Whether you add NULL as a "special value" into each domain, or calll NULL a "marker" that is not part of any domain is just semantics - as long as we agree that the only information carried by NULL is "nothing here", we are in full agreement.


    Hugo Kornelis, SQL Server/Data Platform MVP (2006-2016)
    Visit my SQL Server blog: https://sqlserverfast.com/blog/
    SQL Server Execution Plan Reference: https://sqlserverfast.com/epr/