Re: Null and Void() - Or,
От | A.M. |
---|---|
Тема | Re: Null and Void() - Or, |
Дата | |
Msg-id | 34176.216.41.12.254.1151505806.squirrel@webmail.webopticon.org обсуждение исходный текст |
Ответ на | Null and Void() - Or, Abandon All Hope Ye Who allow NULLs? (dananrg@yahoo.com) |
Ответы |
Re: Null and Void() - Or,
|
Список | pgsql-general |
On Wed, June 28, 2006 5:31 am, dananrg@yahoo.com wrote: > Date and Pascal hate nulls. One even goes so far as to say that if you > permit NULLs in a database, then the results from *every* query is suspect. > So they turn perform backflips suggesting ways to avoid nulls. > None, so far, seem appealing. This has been discussed to death on this list and on every other SQL forum, but since you asked... To understand NULL, there is a little history that needs to be brought up. The original relational model proposal by Codd had no provisions for non-existent data. Mathematical purity is a strong argument against NULL. Another one is just as simple: "NULL represents the absence of data, so it is the antithesis of what should be stored in a _data_base." In Codd's later papers, he comes up with several distinct NULLs representing different states of unknowledge. Date is vehemently opposed to NULL for the aforementioned reasons. NULL is nothing more than a shortcut. SQL logic has to do backflips to accomodate it- notice how NULL!=NULL- indeed, one NULL can mean a variety of things even in the same context! ("Bob doesn't know","HR doesn't know","No one cares","Not applicable", etc.) In this paper: http://web.onetel.com/~hughdarwen/TheThirdManifesto/Missing-info-without-nulls.pdf Darwen discusses relational design without NULLs (his solution requires support for distributed keys which PostgreSQL admittedly doesn't support) but the premise is very simply that data can be partitioned so that the lack of knowledge is implicit in its absence (which is part of the relational model- it should be a closed system of truths). Obviously, for practical purposes, NULL isn't going anywhere fast for SQL databases, but it is really good to know the background and rationale for your own and other's design decisions. I hope this has helped. -M
В списке pgsql-general по дате отправления: