Re: So what's null then if it's not nothing?
Date: Fri, 25 Nov 2005 17:39:13 +0100
> Alexandr Savinov wrote:
>> Jon Heggland schrieb: >> >>> In article <1132798608.160942.270970_at_o13g2000cwo.googlegroups.com>, >>> michael_at_preece.net says... >>> >>>> If you have a text/string field and it can have an empty string what >>>> have you got? What is the value of the data? How does that value differ >>>> from "no value at all"? Question mark. >>> >>> >>> >>> >>> Are two variables/"fields" (of the same type) with "no value at all" >>> equal? >> >> >> >> The question does not make sense because we cannot talking about >> things that do not exist. In particular, it does not make sense to ask >> if two things that do not exist are equal or not.
> Yet it is a syntactically correct question to ask in any query language.
> Let me rephrase: while it is true that it makes no sense, there is
> no formal reason why it shouldn't.
My opinion is that the assignment SomeVariable=NULL is a low level mechanim used by the database system to denote some entity as non-existing along dimension SomeVariable. So it is not a value - it a mark for the field (a value assumes comparisons, operations etc.) If there is such an assignment (a mark) for some entity then effectively all comparisons have to be avoided. In particular, a good query language should be built in such a way that such "bad" comparisons" are not necessary (because they lead to problems). Yet, if some query language or other mechanism implies or provokes such "bad" comparisons then I think that it is a bad approach (of course, only if we interpret NULL as absence). Or, it is a low-level approach that simply provides access to database implementation specific features. (Just like C++ provokes for hacking by using pointer arithmetics.)
One approach to data retreival that does not brings about such "bad" comparisons is based projection and de-projection operations. We see data items as entities that exist in multidimensional hierarchical space. Then we can ask a question how this set of data items looks from another perspective. If we go higher to a more general perspective then we apply operation of projection. If go lower to a more specific perspective then we apply de-projection. More complex queries may use zig-zag form.
Such a convention is much more meaningful because NULL has more to do
with existence/non-existence (creationi/deletion) then with assignment
and comparison. Assignment of normal value could be then written as follows:
Here we add this object to the specified axes with the specified
Received on Fri Nov 25 2005 - 17:39:13 CET
myObject.createAlongAs(SomeVariable, "NormalValue") myObject.addToAs(SomeVariable, "NormalValue") etc.
Here we add this object to the specified axes with the specified concrete coordinate.