跳到正文
IGCSE·Tuition
资讯与通信科技(ICT) · 课程

解释重复记录为什么重要

多出一行看起来无伤大雅,直到会员人数、费用总额和平均值都悄悄改变了。

本页内容
  1. 如何发现重复记录?
  2. 例题详解
  3. 要留意的错误
  4. 自我检测
  5. 下一步

重复记录(duplicate record) 是第二行数据,它描述的是与已有行相同的真实对象。它之所以重要,是因为数据库是按行来计数的,每个重复行都会被当成另一个人、产品或订单。计数、总和与平均值于是描述了一些并不存在的东西。

实操题会要求你找出重复记录、删除它,并说明它为什么重要。本课属于数据库结构与验证,使用与前几课相同的虚构俱乐部数据。

如何发现重复记录?

结合主键和其他字段一起使用。

  1. 按描述性字段排序,例如 Name,让几乎相同的行排在一起。
  2. 比较其他字段。 姓名相同、加入日期相同、费用也相同,强烈暗示同一个人被输入了两次。
  3. 检查主键。 ID 不同并不代表是不同的人。那一行可能是用新 ID 重新输入的。
  4. 决定保留哪一行。 保留原来的那行,通常是较早的一行,删除多余的。如果不确定,删除前先对照源资料。

两个人可能同名,所以仅凭姓名相同并不能证明什么。要比较不止一个字段。

例题详解

虚构的自行车俱乐部在一次粗心的第二次导入之后,表格如下:

MemberIDNameDateJoinedFee
M001Aiman Rahim2024-03-1545.50
M002Mei Ling Tan2024-04-0245.50
M003Kumar Raj2024-05-2030.00
M004Sofia Lim2024-06-1145.50
M005Daniel Ong2024-07-0130.00
M006Kumar Raj2024-05-2030.00

第一步,按 Name 排序。 两行 Kumar Raj 排在一起。

第二步,比较。 Name、DateJoined 和 Fee 都相同,只有 MemberID 不同(M003 和 M006)。这是同一个人被输入了两次。

第三步,衡量影响。 表格显示 6 条记录,但真实会员只有 5 位。含重复行的费用总额是 45.50 + 45.50 + 30.00 + 45.50 + 30.00 + 30.00 = 226.50,真实总额是 196.50。

第四步,用另一种方法验算。 三笔 45.50 是 136.50,三笔 30.00 是 90.00,136.50 + 90.00 = 226.50。去掉一笔 30.00,总额就是 196.50。

第五步,核对平均费用。 含重复行:226.50 除以 6 = 37.75。去掉后:196.50 除以 5 = 39.30。重复行使平均值降低了 1.55,因为 39.30 - 37.75 = 1.55。

第六步,修正。 删除 M006 这一行,保留 M003。然后确认记录数显示为 5。

考试时可以这样写: 重复记录使俱乐部看起来有 6 位会员而不是 5 位,并使费用收入多算了 30.00。依据这张表制作的报告就不准确。

要留意的错误

常见的失误是以为主键就能保护表格不出现重复记录。

错误想法: 表格在 MemberID 上设了主键,所以不可能有重复记录。

主键只能阻止两行拥有相同的 MemberID。M003 和 M006 是不同的值,所以两行都被接受了,尽管它们描述的是同一个人。

改正的方法是说清楚主键能做什么、不能做什么。它防止键值重复,但它不知道两个不同的 ID 其实属于同一个真实的人。要防止这种情况,需要在输入数据时检查、与已有记录对比,并定期复查。

自我检测

1. 一张有 40 条记录的表含有 4 条重复记录。真实的项目有多少个?

查看答案

36。 40 - 4 = 36,因为每条重复记录都是已列出项目的多余一行。

2. 每条记录的费用都是 25.00。表中 40 条记录仍含有 4 条重复记录,显示的总额是多少?真实总额是多少?

查看答案

显示的总额:40 × 25.00 = 1000.00。真实总额:36 × 25.00 = 900.00。重复记录使总额多算了 100.00。

3. 两行的 Name 相同,但出生日期不同。它们一定是重复记录吗?

查看答案

不一定。 两个不同的人可能同名。出生日期不同,说明他们很可能是不同的人。删除任何东西之前,要比较更多字段。

下一步

现在到数据库结构与验证练习题组里试做整个单元。如果重复记录造成了令人意外的总额,发现数字与文本的错误解读会告诉你总额异常的另一个原因。ICT 实操任务与证据检查器可帮助你列出完成数据库任务之前要核对的事项。

学生往往很容易找到重复记录,却在解释时失分。ICT 线上一对一补习的老师可以用新的表格陪你练习简短而准确的答案。

常见问题

什么是重复记录?

重复记录(duplicate record)与另一条记录描述的是同一个真实对象,所以同一位会员、产品或订单出现了两次。两行内容可能略有不同,例如 ID 或拼写不同。主键能阻止相同的键值,却无法阻止同一个人以两个不同的键值被输入。

主键可以完全防止重复记录吗?

不能完全防止。主键会拒绝两条键值相同的记录。如果同一个人以新的 ID 被加入,主键会接受。你还需要细心检查,有时还要为其他字段设规则,才能发现被输入两次的人或物品。

考试时应该怎样解释它的影响?

先说出后果,再与数据联系起来。例如:该会员被计算了两次,所以会员总数偏高,费用总额偏大。要提到对计数或总额的一项影响,以及对数据质量的一项影响。

更新于:

下一步

如果你能发现重复记录,却难以用文字说明它的影响,一对一的老师可以陪你练习简短而精确的解释,直到每一句都能拿分。

一小时付费试听课,按所安排老师确认的收费,RM80 起。 其他费用、时间安排及后续课程,在试听课后由家长与老师直接确认。

补习由家长或监护人安排。用 WhatsApp 把这页发给他们,他们就可以替你咨询。

是家长或监护人?在这里咨询

已通过我们的服务帮助 9,000+ 名学生