問題 8★☆☆

関係データベースの基になっている関係モデルでは、データを「関係(リレーション)」 という単位で扱う。この関係(リレーション)に当たるものとして、 最も適切なものはどれか。

正解:ア

各選択肢の解説

  1. ア同じ項目を持つ行を集めた、表そのもの。

    正解。関係モデルの「関係」は、同じ項目の並びを持つデータの集まり、 つまり1つの表を指します。「顧客」の表、「商品」の表がそれぞれ1つの関係です。

  2. イ1件分のデータを表す、表の中の1行。

    誤り。これは組(タプル)に当たります。1人の顧客、1件の注文といった データ1件分です。関係は組を集めたもので、1行だけでは関係になりません。 「集まり」か「その中の1件」かで区別します。

  3. ウデータの性質を表す、表の中の1列。

    誤り。これは属性(アトリビュート)に当たります。氏名、住所、電話番号のように 各行が持つ項目の種類です。関係は属性を並べた見出しと、それに沿った行の集まりを 合わせた全体を指し、1列だけを切り出したものではありません。

  4. エ2つの表を結び付ける、表どうしの関連。

    誤り。これはリレーションシップ(関連)の説明です。日本語ではどちらも 「関係」と訳せるため最も取り違えやすい点ですが、関係モデルの関係は表そのもの、 リレーションシップはE-R図などで表と表の結び付きを表す言葉です。

理解を深めるために

「関係」とは表のこと

関係データベースの「関係」は、表と表がつながっているから付いた名前だと 思われがちです。実際には、1つの表そのものを関係(リレーション)と呼びます。

関係モデルは、データを数学の「集合」の考え方で扱う理論です。 「氏名・住所・電話番号」という項目の組み合わせを決め、それに沿った データ1件1件を集めたものが関係です。これを目に見える形にしたものが表になります。

理論の言葉と表の言葉の対応

同じものを、理論の側と実際の表の側で別の名前で呼びます。

  • 関係(リレーション) … 表
  • 組(タプル) … 行(レコード)
  • 属性(アトリビュート) … 列(フィールド)

たとえば「顧客」の表なら、表全体が1つの関係、顧客1人分の行が組、 「氏名」「住所」といった列が属性です。関係データベースは、 こうした関係(表)をいくつも持ち、共通の項目を手がかりに組み合わせて使います。

混同しやすいものとの違い

用語 表で言うと
関係(リレーション) 表そのもの
組(タプル) 表の中の1行(データ1件)
属性(アトリビュート) 表の中の1列(項目)
リレーションシップ 表と表の結び付き(E-R図で使う言葉)

「リレーション」と「リレーションシップ」は語が似ていますが、 前者は表、後者は表どうしのつながりです。語尾の「シップ」の有無で区別しましょう。

前の問題へ次の問題へ