首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >FD X->Y,各种X不重要吗?

FD X->Y,各种X不重要吗?
EN

Stack Overflow用户
提问于 2014-05-03 17:04:12
回答 2查看 78关注 0票数 1

在FD中,我不明白: X->Y,为什么X可以是不同的,只要Y是相同的?

代码语言:javascript
运行
复制
X   Y
--  --
1   10
2   10
3   10

有人告诉我,这仍然是X->Y,只有Y变了才有关系.我不明白..。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-03 21:17:48

当关系“是函数”时,函数依赖发生在关系中。形式上,这意味着如果您有像X -> Y这样的FD,那么X的每个值都必须与Y的确切值1相关联。如果我们颠倒了这一说法,我们就会得到一个关于FD失败的“测试”:

代码语言:javascript
运行
复制
If there exists a value `x` in `X` such that there are two values 
of `Y`, `y1` and `y2`, where both

  (x, y1) and (x, y2)

are in the relation, if `NOT (y1 == y2)` then `Y` is not 
functionally dependent on `X`

经过一点思考,很容易看出这个测试通过了您所写的关系。

X -> Y的一个更直观的概念来自于对数学函数的直觉。函数可以看作是一台机器,它消耗输入并产生输出,其规则是,无论运行多少次,特定输入的输出总是相同的。关系模型在具有函数依赖时起作用。函数依赖只表示关系中的元组可以具有以下形式

代码语言:javascript
运行
复制
(x, f(x))

对于一些数学函数,f

就您的关系而言,该函数f很简单:

代码语言:javascript
运行
复制
f(x) = 10           "constant function"

Examples:
f(1)  = 10
f(2)  = 10
f(10) = 10

FD的另一个概念来自于“绘图图”。为此,请将X的所有值都放在Y值旁边的一行中。

代码语言:javascript
运行
复制
x1    y1
x2    y2
x3    y3
x4    y4
x5    y5
...

当我们将两个值从X列绘制到连接两个值的Y列时,就会发生关系。每一行对应一个元组。

代码语言:javascript
运行
复制
x1----y1      is the relation        { (x1, y1), (x2, y2) }
x2----y2

如果X -> Y的每个值都有0行或1行关联,那么关系就是函数式的X

代码语言:javascript
运行
复制
x1----y1   is the relation { (x1, y1)
x2----y2                   , (x2, y2)
x3--| y3                   , (x3, y4)
x4--+-y4                   , (x4, y4) }

在这种情况下,我们可以将这些行转换为“箭头”。

代码语言:javascript
运行
复制
x1---->y1
x2---->y2
x3--|  y3
x4--+->y4

如果我们沿着箭头从一个基地到另一个点,我们总是有一条独特的前进路径--我们不需要“分裂”。在非函数关系中,我们“拆分”;例如,如果我们翻转关系,看看Y是否在X上起作用,我们就会翻转箭头。

代码语言:javascript
运行
复制
x1<----y1
x2<----y2
x3<--| y3
x4<--+-y4

现在,当我们离开y4离开的时候,我们必须“拆分”,沿着箭头走到x3x4。这意味着Y -> X不起作用。

票数 0
EN

Stack Overflow用户

发布于 2014-05-03 21:10:09

您可能应该阅读维基百科关于功能依赖的页面:前三行可能足以澄清您的疑虑:

在关系数据库理论中,函数依赖是数据库关系中两组属性之间的约束。给定关系R,称R中的一组属性X在函数上确定另一组属性Y,也是在R中,(写X→Y)当且仅当每个X值与一个Y值精确相关联,则称R满足函数依赖X→Y。

但是,在您的示例中,X 必须有不同的值,因为它是关键,而Y可以是任何值,而它恰好总是10。

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

https://stackoverflow.com/questions/23447395

复制
相关文章

相似问题

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