首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是有损连接分解的补救方法?

什么是有损连接分解的补救方法?
EN

Stack Overflow用户
提问于 2014-05-10 11:19:06
回答 1查看 82关注 0票数 0

我知道什么是无损分解和有损分解。在有损分解中,我们得到了一些错误的信息。但什么是治疗方法呢?我想如果我们加入主键,它不会有损耗吗?

我说的对吗?如果我是,它也会是无损的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-10 12:46:27

要回答您的问题:要实现无损分解,您必须对函数依赖关系进行拆分。您似乎已经知道了(正式的) 背后的理论,所以我将尝试让您了解一下为什么这是正确的。

假设你有关系R

代码语言:javascript
复制
R(author_id, author_name, post_id, post_date, post_title)

与FDs

代码语言:javascript
复制
author_id -> { author_name }
post_id -> { post_date, post_title }

现在,好的分解是

代码语言:javascript
复制
(author_id, author_name, post_id) (post_id, post_date, post_title)

因为post_id决定了post_datepost_title,因此成为了关键。因为post_id是r2中的一个键,所以r2中的每一行都是不同的行,我们可以安全地加入。注意,原始关系上的主键(author_id, post_id),这比我们实际需要的要多。

另一方面,一个坏的分解

代码语言:javascript
复制
(author_id, author_name, post_id, post_date) (post_date, post_title)

因为没有FD post_date -> post_title,因此post_date不是r2中的键,因此post_date可能具有重复的值。从直觉的角度来看,显而易见的是,加入一个潜在的复制值将给我们带来大量的幻象行。

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

https://stackoverflow.com/questions/23580373

复制
相关文章

相似问题

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