我在掌握DBMS中冗余数据的想法时遇到了麻烦。引用我的教授:
"对于每个唯一的PK值,有许多组数据,然后,这些将重复组。"
这是什么意思?有人可以说明吗?
这就是我的理解:
构建表
++++++++++++++++++++++++++++++++
|Building# | Room | Cleaner# |
|------------------------------|
|B001 | 1 | XYZ |
|B002 | 1 | XYZ |
++++++++++++++++++++++++++++++++
在这里,Cleaner是清洁桌的PK。那么,这是否意味着重复数据将是房间属性?如果B001在表格中重复怎么办?
答案 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 |
++++++++++++++++++++++++++++++++