首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有损分解

有损分解
EN

Stack Overflow用户
提问于 2012-10-01 18:14:29
回答 1查看 23.6K关注 0票数 15

为什么有损分解被称为有损分解?我们在有损分解中到底损失了什么?

有一个关系R,它被分解为两个关系R1和R2。

如果R= (R1 JOIN R2),那么它是无损的join decomposition.It是好的。

如果R是(R1 JOIN R2)的子集,则有损join分解。

这里是有损连接分解,在连接R1和R2之后,我们实际上比R得到了更多的记录。那么我们失去了什么呢??

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-08 22:11:43

由于我们处理的是某个实例R,因此该关系包含固定数量的记录。它还隐式包含有关哪些记录不存在的信息。如果R1和R2的连接产生额外的记录,我们就会失去信息的完整性。

假设您使用以下关系R= (SSN,Name,Address):

代码语言:javascript
复制
           R
SSN     Name      Address
1111    Joe       1 Pine
2222    Alice     2 Oak
3333    Alice     3 Pine

让R1 = (SSN,名称)和R2 =(名称,地址)。

代码语言:javascript
复制
     R1                     R2
SSN     Name     |     Name    Address
1111    Joe      |     Joe     1 Pine
2222    Alice    |     Alice   2 Oak
3333    Alice    |     Alice   3 Pine

R1和R2的连接将产生下表:

代码语言:javascript
复制
       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--我们不再有这个信息。

这就是额外的信息如何导致有损分解。记录并没有丢失--我们丢失的是原始关系中哪些记录的信息。

票数 34
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12671362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档