2021年12月 1日 「12.1 多値」 を読む >> 目次に もどる


 数学では、関数を写像と同じ意味で用いることが多い──写像の基本形は、全射 (「複数 対 1」 対応) と単射 (「1 対 1」 対応) です。しかし、関数を もっと広い意味に用いて、一意対応のことを 「1価関数」 と云い、一意対応でない対応のことを多価関数ということもあります。ただ、「数学の各専門分野では、その歴史に基づいて、それぞれの狭い意味で関数という語を用いることが多」 い (「岩波 数学辞典」 第 3版)──私は数学者ではないので、この辺の数学的扱いを 皆目 わからないので、数学辞典の記述を そのまま借用します。なお、多価関数のことを、多値関数とも任意関数とも云います。

 多値関数とは、関数 y = f (x) において、x の一つの値に対して y の値が複数・多数ある関数を云います。さて、事業分析・データベース 設計では、多値関数は いわゆる 「配列」 という形式として扱われています。データベース (リレーショナル・データベース) の設計論では、「配列」 を認めていない──コッド 正規形では、多値関数 (「配列」) は、第一正規形として排除されます、すなわち 多値関数を 1価関数のように 「1 対 1」 対応に変換した テーブル を べつに生成します。

 さて、コッド 正規形 (第一正規形) で扱われている多値関数の変換を TM では、モデル 体系のなかで (「関係」 文法とは切り離して) 独立した技術として扱っています。そうした理由は、事業分析では 意味論上 ふたつの現象を示しているからです──すなわち、多値が OR 関係にある場合と AND 関係にある場合という べつべつの現象が生じるので、文脈 (形式的構造) のなかで その現象を識別したかったのです (特に、AND 関係を どのように扱うという点には私は長いあいだ悩まされてきました、その点については後述します [ 「12.1.2 多値の AND 関係」 で述べます ] )。モデル TM では、多値の OR 関係を MO (あるいは、MOR) と記述して、AND 関係を MA (あるいは、MAND) と記述します。

 MO は、多値のなかで、或る一時点では、一つの値しか充足しない排他関係です。たとえば、商品単価という語について 100円と 80円という ふたつの値が存る場合では、100円が正価格で 80円が割引価格であるとすれば、100円と 80円は同時には充足されない (すなわち、或る一時点 (取引がなされた時点) では、それらの一つの値しか充足されない)。いっぽう、MA は、多値が或る一時点で同時に すべて充足する関係です。たとえば、一つの受注では、複数種類の (商品番号の異なる) 商品が同時に注文できるという形態です。文章で記述すれば、単なる取引形態のちがいにしか思われないのですが──私も当初そのように考えていましたが──、この形態のちがいを論理形式として記述しようとすれば、(構文論上では、コッド 正規形のように、関数的依存性として一つの同じ規則で扱うことができるのですが) 意味論上のちがいが記述できない。

 TM の前身である T字形 ER法では、MO と MA の意味論上のちがいを扱おうとしましたが、整合的に説明できなかった。その理由は、T字形 ER法が命題論理を基底にして体系化されたために生じたのです。そのために、T字形 ER法を TM に変更拡張するとき、私は それまで基底にしていた命題論理を離れて、TM の基底として セット・クラス・関数を導入しました (この点についても、後述します [ 「12.1.2 多値の AND 関係」 で述べます ] )。その結果、多値の AND 関係が ファンクター (「関数」 の クラス) であることがわかった。 □

 




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