跳到正文

令和8年度 ITパスポート試験 問57

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

問57
頻出度★★★

関係データベースで管理している“学生”表,“科目”表,“成績”表がある。1人の学生は複数の科目を履修するものとし,“学生”表に登録されていない学生や,“科目”表に登録されていない科目は“成績”表に登録できないものとするとき,外部キーとして設定するのが適切なものはどれか。ここで,表中の下線は主キーを表す。 学生

学生番号学生名
G001鈴木 次郎
G002山田 春子

科目

科目コード科目名
K001データベース
K002コンピュータ
K003ネットワーク

成績

学生番号科目コード成績
G001K001優
G001K002可
G002K002良
G002K003優
出典 令和8年度 ITパスポート試験 問57
解説

問 57

  • 错误ア

    “学生”表的学生编号是被引用方的主键,而不是外键。外键应设置在引用方子表(这里是“成绩”表)一侧的列上。而且此项只对应了学生,缺少对科目的引用,无法满足题目的约束条件。

  • 错误イ

    学生姓名和科目名称是非主键的普通属性,无法唯一地引用其他表。外键必须是引用对方表主键的列,不能把姓名列作为外键。

  • ウ

    正解 正确答案是「ウ」。外键是指通过引用另一个表的主键(或唯一列)来保持表与表之间一致性(参照完整性)的列,设置在引用方(子表)一侧。题目的约束条件「不在“学生”表中的学生、不在“科目”表中的科目不能登记到“成绩”表中」,正说明“成绩”表引用了“学生”表和“科目”表。“成绩”表的「学生编号」引用“学生”表的主键(学生编号),「科目代码」引用“科目”表的主键(科目代码)。因此应设置为外键的是“成绩”表的「学生编号」和「科目代码」,故ウ正确。

  • 错误エ

    “成绩”表的成绩(优、良、可等)只是表示评价的普通数据项,并不引用任何其他表的主键。它不属于承担参照完整性的外键。

ここがポイント
  • 外键是「引用其他表主键的列」,设置在引用方(子表)一侧,用于保持表之间的参照完整性。
  • 像“成绩”表这样引用多个表的明细表中,对应各父表主键的列(学生编号、科目代码)会分别成为外键。
用語
解答問57ウ
练这一题

作答记录