「達人に学ぶDB設計徹底指南書」という本のカラムに「どうして関係モデルと呼ぶのか」と言ったコラムがあります。
この質問に対し、エドガー・F・コッドは次のように回答しています。
「「どうして関係モデルと呼ぶのですか。」という質問が時々ある。どうして表形式モデルと呼ばないのか、理由は二つある。
1 関係モデルを考えた頃、データ処理に携わる人たちの間では、複数の対象の間の関係(あるいは関連)は、つなぎデータ構造で表現されなければならないと考える傾向があった。この誤解を迎え撃つために、関係モデルという名前を選んだ。
2 関係よりも表の方が抽象水準が低い。表は、配列と同様に位置による呼び出しが可能だという印象を与えるが、n項関係ではそうではない。また表の情報内容が行の順番と無関係であるという点についても、表は誤解を招きやすい。しかし、こうした小さな欠点はあるにしても、関係の概念を表現する最も重要な手段は、依然として表である。表といえば、誰にもわかる。」
しかし、この本の中でこれに対する解説があるのですが、それとの内容がこの内容と矛盾しているように思えるのです。
本に書かれていた内容を書きます。
「理由2は単純明快です。ズバリ、「関係」と「表」は、決して同じものではないのです。例えば、最も基本的な正規形では、「テーブルのセルの中に複数の値が入ってはならない」というルールがあります。「表」であれば、セルの中に複数の値を入れ込むのも、入れ子の表を作るのも自由です。「関係」と「表」の区別は、例えば他にも以下のようなものがあります。
・関係には重複するレコードは存在してはならないが、表には存在しても良い。
・関係のレコードは上下の順序を持たないが、表の行は上から下へ順序づけられている。
・関係の列は左右の順序を持たないが、表の列は左から右へ順序づけられている。
」
「関係のレコードは上下の順序を持たないが、表の行は上から下へ順序づけられている」に関してですが、コッドは「表の情報内容が行の順番と無関係である」と言っているそうです。
これって矛盾していませんか?
表の情報内容は行の順番と関係ある(上から下へと順序づけられている)のではないでしょうか?
概念的な話になりますが、お分かりの方、回答よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/10/09 03:01