跳到正文

平成22年度 秋期 ITパスポート試験 問87

这道题的解析和你的作答记录。

問87
頻出度★★☆

“部署”表,“都道府県”表及び“社員”表を結合して,A 表を作成した。結合した“社員”表はどれか。ここで,下線は主キーを示し,破線は外部キーを示す。 部署

部署コード部署名

都道府県

都道府県コード都道府県名

A

社員番号社員名部署名都道府県名年齢

(下線のうち実線は主キー,破線は外部キーを表す。部署表:部署コードが実線下線。都道府県表:都道府県コードが実線下線。A 表:社員番号が実線下線。選択肢は 4 肢とも 社員番号 が実線下線で,部署コード・都道府県コードは破線下線。)

  • 社員番号社員名年齢
  • 社員番号社員名年齢都道府県コード
  • 社員番号社員名年齢部署コード
  • 社員番号社員名年齢部署コード都道府県コード
出典 平成22年度 秋期 ITパスポート試験 問87
解説

問 87

  • 错误ア

    只有 员工编号、员工名、年龄,一个外键也没有。无论对「部门」表还是对「都道府县」表,都没有可用于匹配的列,因而无法连接,得不到 A 表的 部门名、都道府县名。

  • 错误イ

    外键只有 都道府县代码,所以虽然能与「都道府县」表连接、得到 都道府县名,但缺少与「部门」表相连的 部门代码,得不到 A 表的 部门名。

  • 错误ウ

    外键只有 部门代码,所以虽然能与「部门」表连接、得到 部门名,但缺少与「都道府县」表相连的 都道府县代码,得不到 A 表的 都道府县名。

  • エ

    正解 A 表由 员工编号、员工名、部门名、都道府县名、年龄 这 5 个项目构成。其中 部门名 只存在于「部门」表、都道府县名 只存在于「都道府县」表,都是通过连接才引入的项目。在关系数据库中要连接两个表,引用一方的表必须拥有与对方表主键取相同值的列(外键)。因此原来的「员工」表,除了原样出现在 A 表中的 员工编号(主键)、员工名、年龄 之外,还需要「部门」表的主键 部门代码 和「都道府县」表的主键 都道府县代码 这两个外键。同时具备这 5 列的只有 エ,图中 エ 的 部门代码、都道府县代码 也以虚线下划线(外键)标示,与同这两个表的连接关系一致。

ここがポイント
  • 连接(join)是把一方表中外键的值与另一方表中主键的值相匹配,从而合并成一个表的操作。想连接多少个对方表,就需要多少个与其主键相对应的外键。
  • 从连接后的表反推原表的思路:名称类项目(部门名、都道府县名)是经由代码类项目(部门代码、都道府县代码)从别的表引入的,所以原表中必须保留相应的外键列。
用語
解答問87エ
练这一题

作答记录