データベーススペシャリスト 平成22年春期 午前U 問13

午前U 問13

関係"履修"と関係"担当"を自然結合した結果はどれか。
13.gif/image-size:317×103
  • [この問題の出題歴]
  • データベース H17春期 問28
  • データベース H19春期 問27

分類

テクノロジ系 » データベース » データ操作

正解

解説

自然結合とは、2つの関係をある属性の値を条件として結合した行の集合から、重複している結合属性の1つを排除してできる関係です。SQLにおいて
WHERE A.C1 = B.C1
というように記述される表同士の結合が自然結合です。

また直積結合の集合から、結合属性の値が等しい行を抽出したものが等結合、等結合から片方の結合属性を排除したものが自然結合になります。
13_1.gif/image-size:355×377
  • 正しい。自然結合の結果です。この結果を得るSQL文は以下の通りです。
    (名前が同じ列を結合条件になる)
    SELECT * FROM 学生 NATURAL JOIN 担当
    または、
    SELECT * FROM 学生,担当
     WHERE 学生.科目 = 担当.科目
  • 等結合の結果です。自然結合とは結合属性の冗長性が排除されていない点で異なります。この結果を得るSQL文は以下の通りです。
    SELECT * FROM 学生 JOIN 担当
     ON 学生.科目 = 担当.科目
  • 連結キーが異なる値同士で結合を行う非等値結合の結果です。この結果を得るSQL文は以下の通りです。
    SELECT * FROM 学生 JOIN 担当
     ON 学生.科目 <> 担当.科目
  • 直積結合(クロス結合)の結果です。この結果を得るSQL文は以下の通りです。
    SELECT * FROM 学生
     CROSS JOIN 担当
© 2016-2019 データベーススペシャリストドットコム All Rights Reserved.

Pagetop