DBMS中的重复或冗余数据是什么?

时间:2016-06-11 17:04:41

标签: database-normalization

我在掌握DBMS中冗余数据的想法时遇到了麻烦。引用我的教授:

"对于每个唯一的PK值,有许多组数据,然后,这些将重复组。"

这是什么意思?有人可以说明吗?

这就是我的理解:

构建表

++++++++++++++++++++++++++++++++
|Building#  | Room  | Cleaner# |
|------------------------------|
|B001       |  1    |   XYZ    |
|B002       |  1    |   XYZ    |
++++++++++++++++++++++++++++++++

在这里,Cleaner是清洁桌的PK。那么,这是否意味着重复数据将是房间属性?如果B001在表格中重复怎么办?

1 个答案:

答案 0 :(得分:0)

这里我们不能将Room视为冗余数据,因为需要建筑物和房间号来唯一标识元组。如果有另一个名为Cleaner的表,其中存储了清洁工的所有信息,那么就没有重复。

我的意思是,这个表有冗余。如果您仔细观察每个清洁剂的信息会重复出现。 [名称和年龄的值对于相同的清洁剂是相同的。

++++++++++++++++++++++++++++++++++++++++++++++++++++
|Building#  | Room  | Cleaner# |    Name  |  Age   |
|--------------------------------------------------|
|B001       |  1    |   0001   |   XYZ    |  27    |
|B002       |  1    |   0001   |   XYZ    |  27    |
|B002       |  2    |   0002   |   ABC    |  35    |
++++++++++++++++++++++++++++++++++++++++++++++++++++

为了消除数据冗余,我们将其拆分为2个不同的表,如下所示:

++++++++++++++++++++++++++++++++
|Building#  | Room  | Cleaner# |
|------------------------------|
|B001       |  1    |   0001   |
|B002       |  1    |   0002   |
|B002       |  2    |   0002   |
++++++++++++++++++++++++++++++++

++++++++++++++++++++++++++++++++
|Cleaner#   | Name  |   Age    |
|------------------------------|
|0001       |  XYZ  |   27     |
|0002       |  ABC  |   35     |
++++++++++++++++++++++++++++++++