如何在关系中强制执行功能依赖?

时间:2017-04-30 12:31:12

标签: database database-design rdbms

如果你有一个关系R(A,B)与功能依赖关系{A→B;}你怎么能强制执行这个功能依赖?

一个。使A成为R的关键 湾使B成为R的关键 C。让{A,B}成为R的关键 d。不需要采取任何措施来强制执行功能依赖

我相信答案是" a"但我不确定。

1 个答案:

答案 0 :(得分:1)

你是对的。通过在A上创建主键或唯一键,我们确保A域中的每个值只能出现一次,这意味着它只能与B中的单个值相关联。

如果我们将B作为主键或唯一键,我们可以将B中的每个值与A中的值相关联,但A中的任何值都可以与B中的多个值相关联。如果我们创建{A,B}一个主键或唯一键,两者中的值组合必须是唯一的 - A中的任何值仍然可以与B中的多个值相关联,违反了所需的FD。

如果不采取任何措施,结果应与使{A,B}成为主键或唯一键相同。原因是问题表明我们正在使用关系,这意味着行必须是唯一的。但是,如果我们使用非关系表,则可能允许重复行,在这种情况下,A中的每个值仍然可以与B中的多个值相关联(除非我们可以多次执行此操作)。