从 Sailboat 书中理解琐碎的函数依赖
Understanding trivial functional dependency from Sailboat book
我正在阅读《帆船》一书第 7 章的幻灯片:https://www.db-book.com/db7/slides-dir/PDF-dir/ch7.pdf,我很难理解作者所说的意思
A functional dependency is trivial if it is satisfied by all
instances of a relation.
和wiki的写法很不一样,比较通俗易懂
A functional dependency FD: X → Y is called trivial if Y is a subset of X.
我试着看一个有效的例子,但是“满足关系的所有实例”这个条件真的让我很困惑。
这是从大学课程中提取的关系:
http://web.cs.ucla.edu/classes/fall04/cs143/solutions/ch7.pdf
| A | B | C |
|----|----|----|
| a1 | b1 | c1 |
| a1 | b1 | c2 |
| a2 | b1 | c1 |
| a2 | b1 | c3 |
在习题7.4的解答中,是这样写的
The nontrivial functional dependencies are: A → B and C → B ...
对我来说,关系的实例都是table中的元组,它们中的每一个都满足上面引用的所有函数依赖。我不明白为什么使用 Sailboat 书的定义,这些功能依赖性并非微不足道。
感谢阅读我的问题。
7.4 List all functional dependencies satisfied by the relation of Figure 7.21.
Answer: The nontrivial functional dependencies are: A → B and C → B,
Exercises 85
and a dependency they logically imply: AC → B. There are 19 trivial functional dependencies of the form α → β, where β ⊆ α. C does not functionally
determine A because the first and third tuples have the same C but different A
values. The same tuples also show B does not functionally determine A. Likewise, A does not functionally determine C because the first two tuples have the
same A value and different C values. The same tuples also show B does not
functionally determine C.
我们说 FD(函数依赖)在给定的关系值中得到满足(保持)iff/when它所说的值是真实的。我们说 FD 在给定关系中得到满足(保持)variable/schema iff/when 它在给定业务规则下可能出现的每个值中得到满足(保持)。
你的引述都没有给出 FD 在给定关系值或 variable/schema 中何时是微不足道的定义,因为他们说的是“如果”而不是 iff/when。它们只给出充分条件;他们没有给出充分必要条件。所以他们不会准确地告诉你 FD 对于给定的关系值或 variable/schema.
何时是微不足道的
如果他们说iff/when,他们就是定义。
让我们将他们的“如果”表示为 iff/when。
“对一个关系的所有实例都感到满意”是草率的、无益的和误导性的。它是用于关系 variable/schema 的措辞。它试图说,即使您不知道有什么约束也会被满足,即即使没有约束也会被满足。在给定关系值的情况下使用它没有多大意义,因为某些 FD 在任何时候都对给定的关系值不成立。 (很明显,一个值被限制为它本身。)
同时适用于 variables/schemas 和值的正确措辞是,只给定属性就满足,或者,仅给定属性就隐含,或者,如果您只知道属性。
幻灯片底部说
In general, α → β is trivial if β ⊆ α
出于同样的原因,这也不是一个定义,即当 iff/when 是预期的时候(ab)使用“if”。但是把“如果”当成iff/when,你就得到了一个定义。它与您的第二个引述的措辞基本相同,α 代表 X,β 代表 Y,⊆ 代表子集。
因此,您的示例值中的平凡 FD 正是 X → Y,其中 Y ⊆ X。A → B & C → B 不是那种形式,因此它们不是该值的平凡 FD。
然后练习继续讨论持有的非平凡 FD,将 FD 持有的定义应用于该关系值。一些非平凡的 FD 成立,有些则不成立。但是微不足道的必须根据定义成立;无论给定属性赋予什么价值,它们都是有效的。
我正在阅读《帆船》一书第 7 章的幻灯片:https://www.db-book.com/db7/slides-dir/PDF-dir/ch7.pdf,我很难理解作者所说的意思
A functional dependency is trivial if it is satisfied by all instances of a relation.
和wiki的写法很不一样,比较通俗易懂
A functional dependency FD: X → Y is called trivial if Y is a subset of X.
我试着看一个有效的例子,但是“满足关系的所有实例”这个条件真的让我很困惑。
这是从大学课程中提取的关系: http://web.cs.ucla.edu/classes/fall04/cs143/solutions/ch7.pdf
| A | B | C |
|----|----|----|
| a1 | b1 | c1 |
| a1 | b1 | c2 |
| a2 | b1 | c1 |
| a2 | b1 | c3 |
在习题7.4的解答中,是这样写的
The nontrivial functional dependencies are: A → B and C → B ...
对我来说,关系的实例都是table中的元组,它们中的每一个都满足上面引用的所有函数依赖。我不明白为什么使用 Sailboat 书的定义,这些功能依赖性并非微不足道。
感谢阅读我的问题。
7.4 List all functional dependencies satisfied by the relation of Figure 7.21.
Answer: The nontrivial functional dependencies are: A → B and C → B, Exercises 85 and a dependency they logically imply: AC → B. There are 19 trivial functional dependencies of the form α → β, where β ⊆ α. C does not functionally determine A because the first and third tuples have the same C but different A values. The same tuples also show B does not functionally determine A. Likewise, A does not functionally determine C because the first two tuples have the same A value and different C values. The same tuples also show B does not functionally determine C.
我们说 FD(函数依赖)在给定的关系值中得到满足(保持)iff/when它所说的值是真实的。我们说 FD 在给定关系中得到满足(保持)variable/schema iff/when 它在给定业务规则下可能出现的每个值中得到满足(保持)。
你的引述都没有给出 FD 在给定关系值或 variable/schema 中何时是微不足道的定义,因为他们说的是“如果”而不是 iff/when。它们只给出充分条件;他们没有给出充分必要条件。所以他们不会准确地告诉你 FD 对于给定的关系值或 variable/schema.
何时是微不足道的如果他们说iff/when,他们就是定义。
让我们将他们的“如果”表示为 iff/when。
“对一个关系的所有实例都感到满意”是草率的、无益的和误导性的。它是用于关系 variable/schema 的措辞。它试图说,即使您不知道有什么约束也会被满足,即即使没有约束也会被满足。在给定关系值的情况下使用它没有多大意义,因为某些 FD 在任何时候都对给定的关系值不成立。 (很明显,一个值被限制为它本身。)
同时适用于 variables/schemas 和值的正确措辞是,只给定属性就满足,或者,仅给定属性就隐含,或者,如果您只知道属性。
幻灯片底部说
In general, α → β is trivial if β ⊆ α
出于同样的原因,这也不是一个定义,即当 iff/when 是预期的时候(ab)使用“if”。但是把“如果”当成iff/when,你就得到了一个定义。它与您的第二个引述的措辞基本相同,α 代表 X,β 代表 Y,⊆ 代表子集。
因此,您的示例值中的平凡 FD 正是 X → Y,其中 Y ⊆ X。A → B & C → B 不是那种形式,因此它们不是该值的平凡 FD。
然后练习继续讨论持有的非平凡 FD,将 FD 持有的定义应用于该关系值。一些非平凡的 FD 成立,有些则不成立。但是微不足道的必须根据定义成立;无论给定属性赋予什么价值,它们都是有效的。