2004年11月 1日 作成 | エンティティ と テーブル | >> 目次 (テーマ ごと) |
2008年12月 1日 補遺 |
コッド 関係 モデル は、「テーブル を、直接に操作できる人」──エンドユーザ もふくめて──が使うことを前提にしているのではないか、と私は思っています。
コッド 関係 モデル では、個々の タプル (テーブル) は、まったく独立であり、「或る テーブル のなかの属性 a と、ほかの テーブル のなかの属性 b は、『現実の世界のなかで』 同じ エンティティ に帰属する」 という情報は、データ 構造のなかには、記述されていないのです。
書物 テーブル { 書物番号、書物名称、出版年度、作者 コード (R) }. { 書物名称、作者名称、出版年度 }. コッド 関係 モデル の 「考えかた」 は、「論理 モデル」 として、構造の整合性を実現することが目的であって、操作そのものは、「概念」 を知っている人を前提にしているのではないか、と私は思います。 「『概念』 を知っている人」 として、(「概念設計」 のなかで事業過程を調べた) 「システム・エンジニア」 を考えるか、あるいは、(エンドユーザ が SQL を習得して、) Dynamic SQL を使って テーブル 群を合成 (join) する──情報を生成する──「エンドユーザ」 を考えるか、、、。 |
[ 補遺 ] (2008年12月 1日)
4 年前に綴られた本文を今読み返してみて、論法が 「論点先取り」 に陥っていることに気付きました (苦笑)。 そうだとすれば──設計段階において、「path」 が固定されるとすれば──、設計は エンドユーザ が実施すれば良いということになりますね (そして、私は、その やりかた を強く推奨します)。 コッド 関係 モデル も TM (T字形 ER手法の改良版) も 「論理的意味論」 に属する モデル です。ふたつの モデル を説明する理論は、それぞれ、数学基礎論 (および、言語哲学) を知らないと理解できないのですが、それらの理論を前提にした 「設計の 『手続き』」 は、いずれの モデル も、とても単純な テクニック なので──そして、いずれの モデル の テクニック も、コンピュータ の知識がなければ使えないという テクニック ではないので──、エンドユーザ も使える テクニック です。とすれば、事業過程・管理過程を知っている──特に、データ のあいだに付帯した制約・束縛を知っている──エンドユーザ が設計すれば良いとふうに考えるのは当然でしょう。ただ、もし、エンドユーザ が、そうするための時間を割り振るのが困難であれば、かれらの代わりに システム・エンジニア が設計すれば良いということです。システム・エンジニア が設計するとしても、あくまで、「代行」 であって 「主役」 ではないという自覚がなければならないでしょうね──そういう自覚 (「事実」 を前提にした自覚) を持っていないと、システム・エンジニア が、事業過程・管理過程を知り尽くして設計できるなどと思い違いしてしまうので (あるいは、自惚れてしまうので)。 本文のなかで、もうひとつ訂正しなければならない点は、「T字形 ER手法は、... 概念設計と論理設計を 1つの手法で同時に実現することを狙っているから」 としている点です。というのは、この点は、コッド 関係 モデル でも同じです。およそ、「論理的意味論」 であれば──言い換えれば、「モデル (modeling)」 であれば──、その接近法になるのが当然です。
TM では、entity という語と object という語が使われています。 Entity である = Df 個体指定子が付与された対象である。 そして、個体指定子 (entity-setter) として、コード 体系のなかで記述されている管理番号 [ ××番号、×× コード ] を使います──たとえば、商品番号とか従業員番号とか受注番号とか契約書番号など。 TM では、entity に対して 「関係」 文法を適用して 「形式的構成」 を作ります── TM は、実体主義的 「個体」 に対して関係主義的 「文法」 を適用するという体系になっています。そして、entity をもとにして構成された 「表 (リスト)」──すなわち、対応表、対照表および再帰表──は、object とされます。なお、object は、「集合 オブジェクト」 と 「組 オブジェクト」 という ふたつの クラス に類別されます。ただし、現時点では、「L-真」 の対照表 (「制約・束縛」 を示す対照表) ならびに アトリビュート・リスト の 「前提」 欄に記述される 「制約・束縛」 および 「計算式」 欄に記述される ロジック (アルゴリズム) を entity に対して カプセル 化しない。勿論、TM で構成された形式的構造に対して、オブジェクト 指向言語を使って アクセス するのであれば、データ と演算 (および、制約・束縛) を カプセル 化しても良いのですが、システム 作りで実地に使われている データベース が リレーショナル・データベース なので、現時点では、カプセル 化をしていない次第です。 |
<< もどる | ベーシックス | すすむ >> | |
▼ データベースの基礎知識 |