为什么有损分解称为有损?我们究竟在有损分解中损失了什么?
存在关系R.它被分解为两个关系R1和R2。
如果R =(R1 JOIN R2)那么它就是无效的连接分解。没关系。
如果R是(R1 JOIN R2)的子集,那么有损连接分解。
这是有损连接分解,在连接R1和R2后,我们实际上得到的记录与R相比更多。那么我们失去了什么。 ?
答案 0 :(得分:32)
由于我们正在处理一些实例R,该关系包含固定数量的记录。它还隐式包含有关哪些记录不存在的信息。如果R1和R2的连接产生额外记录,我们将失去信息完整性。
假设您使用以下关系R =(SSN,名称,地址):
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 Pine
R1和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住在2 Oak。在R1和R2的连接中,2222人或者住在2 Oak或3 Pine - 我们不再拥有此信息。
这是额外信息可能导致有损分解的方式。 记录没有丢失 - 我们丢失的是关于哪些记录与原始关系有关的信息。