2023年 7月 1日 「2.14 ヌル (null) は「状態」であって 「値」ではない」 を読む >> 目次に もどる


 「論理」 は、いくつも種類があって、命題論理・述語論理・様相論理などのように分析対象 (文の構造) に対して用いる技術 (推論の形式化) に従って分けるほかにも、2値論理・3値論理・4値論理のように命題の真理値 (真、偽、可能的など) を前提にして区分けすることもできます。命題の真理値を 「真」 「偽」 の二つに限定してきたのが伝統的論理 (2値論理) です。

 モデルは、現実的事態を写像した形式的構造であって、構文論と意味論から成り立っており、「妥当 (無矛盾) な」 構造とそれに充足される 「真とされる値」 が一組となって構成されます。そして、現実的事態では、「真」 「偽」 の 2値のほかに、次の二つの事態が起こります──

  (1) undefined (値は存在しない、未定義である)

  (2) unknown (値は存在するが、未知数である)

 (1) の例としては、たとえば、従業員と部門との関係において、部門に配属されていない従業員が存在する事態です。(2) の例としては、たとえば、アンケート 用紙のなかで、{ 氏名、住所、電話番号、メールアドレス、・・・} の記入項目に いわゆる 「任意入力」 が存在する場合です (氏名、住所、電話番号は必須項目だけど、メールアドレスは任意入力項目であるなど)。

 マーケット に流布している データベース や プログラム 言語は、3値論理がほとんどです。3値というのは、「真」 「偽」 および 「null (値なし)」 のこと──そのために、コンピュータ 界隈では、null のことを 「null 値」 という言いかたが慣例になっていますが、前述したように、null は二つの状態をふくんでいます。すなわち、null は、状態であって、値ではない (したがって、「null 値」 という言いかたは、「論理」 上、正しくない、null というのが正しい)。

 ちなみに、かつて (20数年前)、T字形 ER法 (TM の前身) が null を警告していたことに対して、「佐藤正美さんは、null にこだわりすぎる、現実の世界では null は生じる」 という非難がされていたそうですが──ただし、私は、その非難を直接に聞いたのではなくて、又聞きなので、正確な引用ではないことを断っておきますが──、その杜撰な思考および無責任な発言に苦笑しました。「現実の世界では null は生じる」、当たり前のことです、というのは 「任意入力」 が存るので。私が null を警告しているのは、モデル すなわち 「(現実的事態を写像した) 形式的構造」 のなかで null の扱いを注意しているのです (形式的というのは、論理的ということと同値です)。本書次節 (2.15) で述べますが、null の論理否定は 3値論理では null なのです (そして、データベース および プログラム 言語のほとんどが 3値論理を前提にしていることに注意されたい)。おそらく、この非難は、「論理」 の基本を知らないままに なされたのだろうし、コッド 氏が 4値論理を勧めたことも わかってはいないのでしょう。また、ネット 上では、次のような決めつけもあったそうです──「佐藤正美さんは、null 撲滅主義者である」 と (これも、又聞きなので、念のため)。Null を撲滅しようなどという (「論理」 上) ムリ なことを私は一言もいっていない (苦笑)。条件反射的に (下調べもしないで) こういう非難をする人たちが、モデル 作成にたずさわっていない シロート であれば、私は苦笑するだけなのですが、モデル 作成にたずさわっている人たちであるとすれば由々しき問題です (「論理」 の基本を学習していただきたい)。 □

 




  << もどる HOME すすむ >>
  目次にもどる