2002年11月 1日 スーパーセット (クラス) の使用例 >> 目次 (テーマ ごと)
  ● QUESTION   組織変更があったとき、変更前の データ 構造 (組織) は、どのように扱えばよいのか。
  ▼ ANSWER   相違の サブセット として扱えばよい。
2007年11月16日 補遺  



 T字形 ER手法は (「命題論理」 を前提にした) 「主選言標準形」 を正規形にしているが、スーパーセット (クラス) という考えかたを援用することもできる。以下を例にする。

 (1) 部門 {部門 コード、名称、...} [ R ]
 (2) 課   {課 コード、名称、...} [ R ]
 (3) 部門. 課. 対照表 {部門 コード (R)、課 コード (R)、...} [ 対照表 ]
 (4) 受注 {受注番号、部門 コード (R)、課 コード (R)、受注日、...} [ E ]

 [ 注意 ] 受注のなかに複写 (Re-used) されている部門 コード と課 コード は、「部門. 課. 対照表」 から複写されていない点に注意されたい。

 
 さて、部門制を廃止して、プロジェクト 制を導入した、とする。
 プロジェクト は、以下のように 「resource」 として認知されている、とする。
 とすれば、組織変更後の データ 構造は、以下のようになる。

 (1) プロジェクト {プロジェクト・コード、名称、適用日、...}[ R ]
 (2) 受注 {受注番号、プロジェクト・コード (R)、受注日、...}[ E ]

 [ 参考 ] プロジェクト のなかの適用日は、プロジェクト 制が導入された日とする。

 
 部門制を実施していたときの データ (組織の データ と受注 データ) は、「過去の事実 (履歴)」 として保存しておかなければならない。そのためには、プロジェクト 制に移行したとき、以下のような 「スーパーセット (クラス)」 を使って、部門制の データ と プロジェクト 制の データ を 「相違の サブセット」 として扱う。

    組織 [ スーパーセット ]
        |
        ×
        ↓
        ├{部門 コード (R)、課コード (R)、...}[ 部門制 ]
        │
        └{プロジェクト・コード、名称、...}[ プロジェクト 制 ]

    受注 [ スーパーセット ]
        |
        ×
        ↓
        ├{受注番号、部門 コード (R)、課コード (R)、受注日、...} [ E ]
        │
        └{受注番号、プロジェクト・コード (R)、受注日、...} [ E ]

 なお、以下の データ は、そのまま、保存されていなければならない。

 (1) 部門 {部門 コード、名称、...} [ R ]
 (2) 課  {課 コード、名称、...} [ R ]

 すなわち、スーパーセット (クラス) は、実 データ (タイプ 0) に対する抽象化 (タイプ 2) である。□

 



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

 本 エッセー の用語法--すなわち、スーパーセット を クラス というふうによんでいること--は、なんだか、misleading ですねえ、、、。しかも、スーパーセット と言っていながら、「相違の サブセット」 という言いかたもしているので。そういう言いかたをしたのは、たぶん、スーパーセット を 「集合」 としてみれば、それぞれの セット を 「相違の サブセット」 として扱うことができる、という意味でしょうね。

 スーパーセット と クラス は、相違する概念です--ただし、翻訳することはできますが。
 TM (T字形 ER手法) で云う 「スーパーセット」 は、ZF の公理系で云う 「対の公理」 であると思って良いでしょう。すなわち、2つの集合 (セット)--たとえば、A と B --があれば、その 2つの集合を メンバー とする集合 X が存在する、ということです。単純に言えば、A と B が集合なら、{A, B} も集合である-- X は {A, B} である。ただし、{A, B} は、非順序対です--本 エッセー の例では、時系列に並べることはできますが。

 そして、そういう集合 X に対して、「置換公理」 を適用して--すなわち、x ∈ X について、f (x) があるなら、{ f (x) | x ∈ X } は集合になるということを適用して--「クラス」 に翻訳することができますが、TM では、「概念的 スーパーセット」 という言いかたをしているように、スーパーセット は、あくまで、「対の公理」 に対して 「暗に (implicitly)」 適用したにすぎないのであって、「f (x)」 を 「明示的に」 記述している訳ではない点に注意してください。というのは、「概念的 スーパーセット」 は、T之字の右側 (性質) を記述することがないので。

 したがって、本 エッセー のなかで綴られている最後の文 「スーパーセット (クラス) は、実 データ (タイプ 0) に対する抽象化 (タイプ 2) である」 は、misleading ですね。「概念的 スーパーセット」 は、単純に、2つの集合 (セット)--たとえば、A と B --があれば、その 2つの集合を メンバー とする集合 X が存在する、というふうに覚えておけば良いでしょう。しかも、スーパーセット の 「性質」 を記述することは、いまの TM では、やらない、と (ただし、いずれ、スーパーセット の 「性質」 を記述するようになるかもしれない)。




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