2004年 2月16日 作成 | データ 設計技法 (チェン、コッド、ワーニエ) | >> 目次 (テーマ ごと) |
2008年 3月16日 補遺 |
(1) チェン (Chen P.) コッド 氏が提示した セット・アット・ア・タイム 法は、設計段階で (データベース の物理設計手法として) 使われ、(主体集合は、すでに、記号化されているという前提に立って、) 属性集合を対象にして、属性集合のなかから、1つずつ データ を選んできて、関数的依存関係 を前提にした タプル (tuple) を生成する手法である。 ワーニエ 氏が提示した、いわゆる 「ワーニエ・メソッド」 は、設計段階で (プログラム 構造の設計手法として) 使われ、インプット の データ 構造を前提にして、「反復と選択」 の アルゴリズム を構成する手法である。したがって、インプット の対象となる情報のなかに、いくつかの キー (主体集合) があれば、複合 キー 構成になった indexing を前提にした レコード・アット・ア・タイム 法である。
(1) チェン ER と コッド 正規形 の関係 (1) も (2) も、それぞれの手法が提示した目的・前提とは懸け離れた関係が起こってしまった。 まず、チェン ER と コッド 正規形との関係のなかで起こった間違いは、コッド 正規形を チェン ER を使って記述してしまった、という点である。それぞれの手法の目的を正当に判断すれば、チェン ER を作図してから コッド 正規形を作るというのが正しい。ただし、チェン ER の entity は、かならずしも、コッド 正規形の テーブル には対応しないので、チェン ER から コッド 正規形への 「翻訳」 は、意外に、むずかしい。 次ぎに、コッド 正規形と ワーニエ・メソッド との関係のなかで起こった間違いは、(プロダクト としての) RDB が (パージョンアップ のなかで) indexing を搭載したので、セット・アット・ア・タイム 法が、レコード・アット・ア・タイム 法として使われてしまった、という点である。そして、SQL が、(バージョンアップ のなかで) 「反復と選択」 の シンタックス を導入したので、セット・アット・ア・タイム 法を前提にした テーブル に対して、レコード・アット・ア・タイム 法の ワーニエ・メソッド を適用してしまった、という点である。
(1) 事業の構造 (「モノ と関係」 を使って記述された構造) を、データベース の正規形として作る。
小生は、その やりかた の 1つとして、T字形 ER手法と INDEX-only を提示した。 |
[ 補遺 ] (2008年 3月16日)
本 エッセー で言及した 3人の説を学習には、まず、以下の文献を読んで下さい。
(1) ワーニエ・プログラミング法則集、J. D. ワーニエ 著、鈴木君子 訳、日本能率協会. 私は、20歳代後半、アーサー・アンダーセン に入社して、ワーニエ・メソッド を指導され──当時、アンダーセン の コンサルティング 部 (現、アクセンチュア 社) は、「Method-1」 という システム作りの独自の メソドロジー をもっていて──、「Method-1」 のなかで、ワーニエ・オワ (Warnier/Orr) 法を使っていました。ワーニエ・オワ 法は、J.D. Warnier 氏が作って、Ken Orr 氏が補足した 「構造化」 手法です。当時、アンダーセン では、プログラム の スペック を ワーニエ・オワ 法で記述することになっていました。私は、当時、プログラマ だったので──下手な プログラマ でしたが(笑)──、ワーニエ の構造的 プログラミング を遵守していました。当時は 1970年代の後半だったので、われわれは、日本で、ワーニエ・メソッド の 「第一期生」 でした。ただ、遺憾ながら、私は、当時、構造化手法を まじめに学習しなかった。私が、ワーニエ・メソッド を丁寧に学習したのは、アンダーセン を退社して、アシスト 社に入社してからでした。 私の そもそもの専門領域は、会計学 (財務会計論) と生産管理 (MRP U) だったのですが、なにかの 「時代のいたずら」 で、アシスト 社に入社してから、リレーショナル・データベース を日本に導入・普及する役目を担うことになりました──当時、日本では、RDB が、いまだ、使われていなかった。私は、RDB に関して、当初、DBA を担当していたのですが、データ 設計法を普及するために、DA の仕事に転職することになって、コッド 関係 モデル (実際には、コッド 関係 モデル を簡便化した正規化手続き) と チェン ER 手法を日本に普及する役割を果たすことになりました。そして、私は、当時、本 エッセー のなかで述べた間違い (コッド 正規形を チェン ER図で描くこと) を日本中にまき散らしてしまいました、、、(懺悔)。 私は、本 ホームページ のあちこちで公言しているように、コッド 関係 モデル 派です。私の作った データ 設計法が、当初、「T字形 ER手法」 というよびかたをしたので、まるで、チェン ER手法の仲間のように、世間では、見られているようですが、私は、チェン ER手法を、全然、信用していない。さらに、「T字形 ER手法」 は、当初 (1990年頃)、データ 設計法として生まれたのですが──コッド 関係 モデル を実地の仕事で使いやすいようにするために作ったのですが──、2000年頃から、コッド 関係 モデル を 「意味論」 として使うようにするために、「論理的意味論」 の性質を強めてきました。そのために、「T字形 ER手法」 というよびかたがふさわしくないので、2005年に、「TM (T字形 ER手法の改良版)」 というよびかたに変えました。 1980年代から、システム 作りのやりかたとして、ウォーターフォール (waterfall) 型 (分析 → 設計 → 製造 → 保守) が使われてきたのですが、システム 作りのなかで、私が一貫して狙っていた点は、「分析」 と 「設計」 の乖離を根絶することでした。その乖離を根絶するためには、設計法は、「モデル」 として、以下の 2点を実現していなければならない。
(1) 「構成」 を作るための生成規則をもっている (構文論の観点) この 2点を実現するためには、モデル は、当然ながら、「論理的意味論」 となります。
モデル (あるいは、アルゴリズム) は、そもそも、いわゆる 「数学基礎論」 から生まれました。 |
<< もどる | ベーシックス | すすむ >> | |
▼ データベースの基礎知識 |