为什么多值依赖以这种方式命名?

Poi*_*int 3 database-theory relational-theory

我正在斯坦福开放课件上做一门关系设计课程。我理解为什么函数依赖以这种方式命名 - A->B 意味着在指定 A 时指定了 B,或者换句话说,B 的值在功能上取决于 A 的值。但我想不出一个多值依赖项以这种方式命名的简单原因。理解这一点将使记住和使用这个概念变得更加容易。

Ren*_*nzo 5

多值依赖 A->->B 意味着 A 的每个值都决定了B 的一值(而不是函数依赖中的 B 的单个值)。

例如,假设programmers有一个 attributeprogrammer-id和一个 attribute known-language,并且每个程序员都知道多种语言,那么您就有了多值依赖:

程序员 ID ->-> 语言知识

因此,假设 program-id 7 的程序员知道 SQL 和 Ruby,这意味着在一个表中,你有两个属性programmer-idknow-language,每次有 program-id 7 时,必须有两个不同的行,一个是语言'SQL ' 和一个使用 Ruby 语言,并且所有其他属性都相等

programmer-id  know-language other-attribute1 other-attribute2 ...
    7              SQL           XXX               YYY
    7             Ruby           XXX               YYY
    8             Java           AAA               BBB
 ...
Run Code Online (Sandbox Code Playgroud)