跳到正文

平成23年度 秋期 ITパスポート試験 問65

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

問65
頻出度★★☆

関係データベースの A 表,B 表がある。A 表,B 表に対して(A∪B),(A∩B)を行った結果は,それぞれ P 表,Q 表及び R 表のどれになるか。ここで,∪は和集合演算,∩は共通集合演算を表す。 A

商品コード商品名定価
P001プリンタ12,000
P003PC65,800
P007USB ハブ6,280
P012OA チェア14,200
P019OA デスク25,600

B

商品コード商品名定価
P003PC65,800
P007USB ハブ6,280
P020USB メモリ3,000

P

商品コード商品名定価
P003PC65,800
P007USB ハブ6,280

Q

商品コード商品名定価
P001プリンタ12,000
P012OA チェア14,200
P019OA デスク25,600

R

商品コード商品名定価
P001プリンタ12,000
P003PC65,800
P007USB ハブ6,280
P012OA チェア14,200
P019OA デスク25,600
P020USB メモリ3,000
出典 平成23年度 秋期 ITパスポート試験 問65
解説

問 65

  • 错误ア

    该选项把 (A∪B) 当作 P 表、(A∩B) 当作 R 表,并集和交集完全颠倒了。P 表只有 2 行,缺少 A 表中的 P001、P012、P019;如果是并集,至少应该包含 A 表的全部行,所以不成立。另外 R 表有 6 行,连只在 A 表中出现的行以及只在 B 表中出现的行 (P020) 都包含在内,因此不可能是只保留两个表共有行的交集运算的结果。

  • 错误イ

    该选项把 (A∪B) 当作 Q 表,但 Q 表 {P001, P012, P019} 只收集了在 A 表中而不在 B 表中的行,也就是差集 A−B 的结果。如果是并集,只在 B 表中出现的 P020 也必须包含在内,而 Q 表里既没有 P020,也没有 P003 和 P007,所以是错误的。把 (A∩B) 当作 R 表这一点也不成立,因为 R 表的 6 行并非全都是两个表共有的。

  • ウ

    正解 正确答案是「ウ」,(A∪B) 对应 R 表,(A∩B) 对应 P 表。并集运算 (∪) 是把两个表的所有行汇集起来、并把重复的行合并为一行的操作。把 A 表的 5 行 {P001, P003, P007, P012, P019} 与 B 表的 3 行 {P003, P007, P020} 合在一起时,共有的 P003 和 P007 各自合并为一行,因此结果是 {P001, P003, P007, P012, P019, P020} 这 6 行,与 R 表完全一致。另一方面,交集运算 (∩) 是只取出两个表中共同存在的行的操作。A 表和 B 表中都有的行只有 P003 (PC, 65,800) 和 P007 (USB 集线器, 6,280) 这 2 行,这与 P 表一致。因此 (A∪B) 为 R、(A∩B) 为 P 的「ウ」是正确的组合。

  • 错误エ

    该选项前半部分 (A∪B)=R 表是正确的,但后半部分把 (A∩B) 当作 Q 表是错误的。Q 表 {P001, P012, P019} 是只存在于 A 表中的行的集合 (差集 A−B),其中没有一行来自 B 表。交集只取出两个表中都存在的行,所以正确的应该是由 P003 和 P007 组成的 P 表。即使并集部分正确,只要交集不对,作为组合就是错误答案。

ここがポイント
  • 关系数据库的集合运算:并集 (∪) 是把两个表的所有行去除重复后汇总,交集 (∩) 是只保留两个表共有的行,差集 (−) 是只保留仅存在于其中一个表的行。这些运算都只能在列结构 (定义域) 相同的表之间进行。
  • 用行数快速判断的方法:A 有 5 行、B 有 3 行、共有的行有 2 行时,并集是 5+3−2=6 行,交集是 2 行。把这个 6 行的表 (R) 和 2 行的表 (P) 与选项表对照,答案就确定了。3 行的 Q 表对应差集 A−B,是用来迷惑的陷阱。
用語
解答問65ウ
练这一题

作答记录