2005年11月 1日 対照表 と 非正規形 >> 目次 (テーマ ごと)
  ● QUESTION   対照表が非正規形ならば、データ 設計で、非正規形を是認することになるのではないか。
  ▼ ANSWER   そうではない。非正規形の無制限な作成を避けるために、「F-真」 を導入した。
2010年11月16日 補遺  



 対照表は、T字形 ER手法 (いまは、TM および TM’ という) を公表したときから、物議を醸した点である。すなわち、対照表は、非正規形である、と。或る人から聞いたのだが、対照表は、かって、「2 ちゃんねる」 でも論点になって、「佐藤正美さんは、推理小説の読み過ぎではないか」 という意見が述べられていたそうです (笑)──その意見を述べた人の想像が外れて申し訳ないが、小生は、推理小説を、いままで、読んだことはない (笑)。

 小生は、20年ほど前、日本に RDB を導入した システム・エンジニア の 1人であるし、当時、コッド 関係 モデル を普及した システム・コンサルタント でもある。したがって、当然ながら、コッド 関係 モデル を熟知しているし、いまさらながら、「(コッド 関係 モデル の云う) 正規形」 を知らないような言いかたをされるほどの無知ではないつもりである (笑)。

 対照表は、コッド 関係 モデル では、非正規形であることを自覚して、当時 (10数年前)、敢えて、公表した。というのは、当時のT字形 ER手法は、コッド 関係 モデル に対して、「異議申し立て」 として公表した。ただ、コッド 関係 モデル に対する 「異議申し立て」 としてのみではなくて、いっぽうで、(ウォータフォール 式の システム 作りに対する アンチ・テーゼ として、) RAD (Rapid Application Development) を意識して、T字形 ER手法を作った。つまり、T字形 ER手法を作った理由は、システム 作りの 「短納期化・高品質化・低投資化」 という環境的公準と、データ 設計技法として、コッド 関係 モデル に対する アンチ・テーゼ という構造的公準の 2つであった。この 2つの前提を配慮したときに、問題点となったのが、SDLC (System Development Life Cycle) のなかで、分析段階と設計段階のあいだに生じていた 「溝」 であった。

 この 「溝」 は、(コッド 氏が、データ・モデル の最大の論点とした) 「データ の独自性 (data-independence)」 に抵触する論点である (448ページ を参照されたい)。外部層を記述する 「なんらかの構造」 と、概念層を記述する データ・モデル との関連が論点になる。外部層の 「なんらかの構造」 として、帳票などの 「情報」 を考えるのか (管理過程を対象とするのか)、それとも、「情報」 が、どのように使われているのか (事業過程を対象にするのか)、いずれを考えれば良いのか、という論点である。設計段階では、外部層は、あきらかに、「情報」 になる。したがって、概念層として、データ・モデル を考えれば、データ・モデル は、外部層の 「情報」 のなかで、対象が、すでに、記号化されている、という前提を導入すれば、データ・モデル を、もし、数学的な手法 (たとえば、関係 モデル) を使って作れば、(外部層の) 事実的対象 と (モデル のなかの) 記号が指示関係を示し、かつ、モデル そのものは、生成規則を示した構文論的な モデル となる。そういうふうに作られた モデル が、コッド 関係 モデル である。

 さて、このときに論点になるのが、外部層の記述として、分析段階 (の手法) を考慮するのかどうか、という点である。管理過程のなかで使われている 「情報」 を記述することと、事業過程のなかで、そういう 「情報」 が、どのようにして使われているか ということを記述することは、当然ながら、相違する。単純に言い切ってしまえば、管理過程は、事業過程を モデル 化した (ポパー 氏流に言えば、) 「第三世界」 であって、事業過程と管理過程のあいだには、相互作用があって、なんらかの指示関係はあるが、かならずしも、一致しない。
 事業過程を 「現実的な世界」 として、それを、「entity」 概念を使って記述する手法 (ER 手法) を提示した人物が チェン 氏 (Chen, P.) である。かれは、その やりかた を 「意味論 (semantics)」 と云った──ただし、その 「意味論」 を、小生は、「記述的意味論」 であって、「論理的意味論」 ではない、と判断する (したがって、その手法は、あくまで、「記法」 であって、「モデル」 ではない、と小生は判断する)。

 さて、いずれにしても、コッド 関係 モデル と チェン ER 手法が 1970年代に提示されて、設計段階の手法 (データ 構造を示す手法) と分析段階の手法 (事実的世界を記述する手法) が並立することになった。コッド 関係 モデル は 構文論を主体としている モデル であり、チェン ER 手法は 記述的意味論の記法である、と云って間違いないが、意味論という観点から判断すれば、コッド 関係 モデル は、論理的意味論である。コッド 関係 モデル では、テーブル (タプル) が、かならずしも、現実的世界の entity を、そのまま、記述しないが、データ の 「意味」 は、「構造」 のなかで、制約条件として示されている──現実的世界の entity を作るには、「join」 演算をすればいい。コッド 関係 モデル が、記法にすぎない チェン ER 手法に比べて、きわだって、すぐれている点は、構文論として、アルゴリズム が提示されている、という点であり、論理的意味論として、記号と事実との指示関係が 「同意」 されていれば、データ 構造は、個人的な恣意性が混入しない、という点である。この点で、コッド 氏は、チェン ER 手法を認めようとしなかったそうだが、小生も、(チェン ER 手法を認めないが、) コッド 関係 モデル に酌みする。

 ただ、コッド 関係 モデル では、「null」 を認めていた。20数年前、この点を、小生は、いち早く、コッド 関係 モデル の 「弱点」 として指摘していた──IBM/DB2 が 「null を扱えない」 点を fatal flaws の 1つとして コッド 氏は非難なさった前に、小生は、日本のなかで、それ [ null の扱い ] を指摘してきた。そんなことを自慢するつもりは、小生には、さらさらない (笑)。というのは、論理的意味論の観点に立って判断すれば、「null」 が 「多義」 なる──「unknow」 と 「undefined」 の 2つの意味になる──ことは、すぐに理解できるから。「null」 を的確に扱うために、コッド 氏は、4値論理を導入した。4値論理を前提にすれば、「null」 を扱えるが、果たして、4値論理を使うことが モデル を使用する際に easy to use かどうかは論点になる。

 いっぽう、「null」 を、いっさい、認めない前提にして、2値論理 (「真」 と 「偽」 の 2値) のなかで、「意味」 を扱うようにしたのが、T字形 ER 手法である。しかも、T字形 ER 手法は、指示規則として、「resource と event」 という意味論的概念を導入した。その意味論的概念を前提にして、「構造」 を作る 4つの文法を提示した。その 4つの文法のなかで、対照表が作成される。対照表は、「null」 を回避するために導入した意味論的構成物である──対照表は、そもそも、「resource」 の2項関係を示す (それぞれの 「resource」 が生起する様相を示し、かつ、「null」 を除去する) 構成表 (真理値表) として導入した。ただし、意味論を導入したからには、「真」 概念を定義しなければならない。そのために、「真」 概念として、カルナップ 氏が提示した 「事実的な F-真と導出的な L-真」 を使った。そして、対照表は、すべて、まず、L-真を示す構成表 (真理値表) だが、いっぽうで、F-真を示せば、2項関係が 「なんらかの event」 を記述する、というふうに定義した。

 T字形 ER 手法では、entity は、まず、指示規則を前提にして、語彙 (項) として導入される。そして、語彙 (項) のなかで、「resource」 が文法 (生成規則) に従って対照表を構成したら、対照表は、かならず、「F-真」 概念を使って、「意味 (指示関係)」 を検証される。つまり、対照表は、「F-真」 (事実的対象との指示関係) を示すなら、entity (event) の同値として扱われる。したがって、対照表は、構文論的には、非正規形であっても、意味論的には、「個体」 を示す。対照表は、非正規形を認めているのではないのであって、かならず、事実的な 「F-真」 概念を使って、「真」 であることを検証される点に注意されたい。

 



[ 補遺 ] (2010年11月16日)

 今読み返してみて、ひどく むずかしい説明をしていますね (苦笑)。
 説明が むずかしくなった理由は、ひとつの エッセー のなかで、いくつもの論点を扱ったからでしょうね──すなわち、「非正規形」 「null」 および 「記述的意味論と論理的意味論」 を扱ったからでしょうね。

 ただ、それらの論点は、いずれも、ひとつの テーマ に収斂します──すなわち、「構文論と意味論」。
 チェン ER は、なんら、構文論の文法を提示しなかったので、私は チェン ER を モデル として認めてはいない。私は、コッド 関係 モデル 派です──実際、TM (T字形 ER手法の改良版) は、コッド 関係 モデル を起点にして作られています。

 コッド 関係 モデル を私は モデル の手本にしているのですが、コッド 関係 モデル を実地に使おうとして私が遭遇した難点が以下の点でした。

  (1) null
  (2) 関数上の 「並び」

 コッド 関係 モデル は、構文論が充実しているのですが──すなわち、セット 理論と第一階述語論理を使っていますが──、妙な言いかたに響くかも知れないのですが、構文論において正確であったがゆえに、意味論において、前述した 2点が難点になった、と私は思いました。そこで、その 2点を実地に使いやすいようにするために、私は 「T字形 ER手法」 を作った次第です。

 「対照表」 は、上述した (2) の論点に対応するために導入した技術です。たとえば、以下のように。

  { 従業員番号、従業員名称、・・・}.
  { 部門コード、部門名称、・・・}.
  { 従業員番号 (R)、部門 コード (R)}. ← これが 「対照表」

 「対照表」 は、そもそも、構文論上、「null」 を排除するために導入された技術ですが、意味論上、いかなる役割を担うかが むずかしい論攷点として pending になっていました──当時、「対照表」 は 「event」 を言及する、というふうに説明していましたが [ TM で云う 「F-真」 の状態 ]、そうではない 「対照表」 が構成されるという点が論攷点として pending になっていました [ TM で云う 「L-真」 の状態 ]。そして、「L-真」 の 「対照表」 が 「非正規形」 であることを私は承知のうえで、「T字形 ER手法」 の文法を公表しました。それを承知のうえで公表した理由は、この 「対照表」 があれば、プログラム の ソース・コード を減らすことができるので。「F-真」 の 「対照表」 を 「非正規形」 であると非難する人たちに対しては、私は相手にしない。というのは、かれらは、ふたつの モデル の 「前提」 が異 (ちが) うこと──コッド 関係 モデル の前提と TM の前提が異うこと──を無視して、コッド 関係 モデル の観点で非難しているにすぎないか、あるいは、コッド 関係 モデル も知らないで 「世上、(RDB 向けの) 『データ 正規化手続き』 として説明されている事項を鵜呑みにしているにすぎないから。

 当時は、「L-真」 の 「対照表」 を 「バリデーション・ルール を示す」 というふうに説明していました。当時、私の頭を悩ました点は、たとえ、「対照表」 を 「事実 (現実的事態)」 と対比して、「対照表」 として構成された事態が 「事実」 であったとしても、それだけの験証では、「T字形 ER手法」 の文法を モデル の文法にはできない、という点でした。なぜなら、「resource」 のなかには、「事実」 と対比できない概念が多く存在するから──たとえば、「カラー」 とか 「サイズ」 とか 「分類」 など。言い換えれば、単純な 「指示規則」 では意味論を構成できない、という点でした。その点 [ 単純な 「指示規則」 では意味論を構成できない、という点 ] を どうすればいいか、という悩みが、その後の私の 「モデル 作り」 の戦いでした。

 その戦いは、最終的に以下のような正当化条件を示して決着したつもりです。

  「合意」 → 「L-真」 → 「F-真」.

 この正当化条件は、今回の テーマ から外れるので、これ以上に説明しませんが、本 ホームページ のあちこちで綴っていますので読んでみて下さい。





  << もどる HOME すすむ >>
  データ解析に関するFAQ