为什么有损分解被称为有损分解?我们在有损分解中到底损失了什么?
有一个关系R,它被分解为两个关系R1和R2。
如果R= (R1 JOIN R2),那么它是无损的join decomposition.It是好的。
如果R是(R1 JOIN R2)的子集,则有损join分解。
这里是有损连接分解,在连接R1和R2之后,我们实际上比R得到了更多的记录。那么我们失去了什么呢??
发布于 2012-10-08 22:11:43
由于我们处理的是某个实例R,因此该关系包含固定数量的记录。它还隐式包含有关哪些记录不存在的信息。如果R1和R2的连接产生额外的记录,我们就会失去信息的完整性。
假设您使用以下关系R= (SSN,Name,Address):
R
SSN Name Address
1111 Joe 1 Pine
2222 Alice 2 Oak
3333 Alice 3 Pine让R1 = (SSN,名称)和R2 =(名称,地址)。
R1 R2
SSN Name | Name Address
1111 Joe | Joe 1 Pine
2222 Alice | Alice 2 Oak
3333 Alice | Alice 3 PineR1和R2的连接将产生下表:
R1 join R2
SSN Name Address
1111 Joe 1 Pine
2222 Alice 2 Oak
2222 Alice 3 Pine
3333 Alice 2 Oak
3333 Alice 3 Pine本例中丢失的信息是人2222和3333的地址。在原始关系R中,人2222住在2Oak。在R1和R2的连接中,Person2222要么住在2Oak,要么住在3Pine--我们不再有这个信息。
这就是额外的信息如何导致有损分解。记录并没有丢失--我们丢失的是原始关系中哪些记录的信息。
https://stackoverflow.com/questions/12671362
复制相似问题