2009年 5月 1日 「技術編-27 null の除去」 を読む >> 目次にもどる

 

 null の多義性については、「赤本」 20ページ (理論編-2 構文論と意味論) で述べました。null は、「undefined と unknown」 の ふたつの状態を指示する語です。すなわち、null は 「(値が) 充足されていない状態」 を示す語であって、他の値と比較することはでない──すなわち、「(値の) 大小や等しいこと (>, =, <)」 を問うことができない。モデル は、「(モデルの) 解釈」 として 「付値」 を前提にするのであれば──あるいは、「F-真」 を験証するのであれば──、その構成のなかから null を除去しなければならない。TM では、null を除去する やりかた のひとつとして、「相違の サブセット」 を使います。

 TM では、サブセット を以下の 2つの クラス に分けています。

 (1) 実質的 サブセット
 (2) 形式的 サブセット

 「実質的 サブセット」 とは、セット を切断するための判断規準が 「区分 コード」 で明示されている サブセット 構成を云います。いっぽう、「形式的 サブセット」 とは、「区分 コード」 がないけれど、null が生じるので、null を除去するために構成される サブセット です。そして、「形式的 サブセット」 は、以下の 2つの構成の いずれかになります。

 (1) 「共時的 (syncronique)」 [ 同時に併存する状態 ]
 (2) 「通時的 (diacronique)」 [ 相違する時点で存在する状態 ]

 「赤本」 101ページ で例示した 「顧客」 は 「共時的」 な サブセット 構成ですが、同じ ページ の 「契約」 は 「通時的」 な サブセット 構成です。

 なお、ウェブ の 或る ページ で、私 (佐藤正美) が、まるで、「null 撲滅旗手」 のように云われているそうですが、私は 「null に対して注意を向けるように提言している」 のであって、「null 撲滅」 などという意図は、さらさら、ない点を注意書きしておきます。null は、たとえば、「任意入力」 などのように、現実的に生じます。TM では、null を 「相違の サブセット」 で除去するようにしていますが、VE (みなし entity) [ 後日説明 ] を使って対応することもあります── undefined な null であれば 「相違の サブセット」 を使えばいいのですが、unknown な null であれば、一々 「相違の サブセット」 を構成したら記述が煩瑣になって かえって モデル が読みにくくなってしまうので、VE で対応するのが ふつう です。そして、null に対応するために VE として記述された項目──たいがいは、「任意入力」 の項目ですが──には、アトリビュート・リスト の 「制約・束縛」 欄において、「null が生じること」 を記入しておけばいい。もし、「任意入力」 の項目を派生もとの entity に戻して実装するのであれば、それでいいでしょう。ただし、その項目には 「不明 (unknown)」 な状態があることを明記しているので、null を対象にした演算をやらないように注意してほしい、ということです。単純に言えば、null は 「F-真」 の験証ができない、ということ。 □

 



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