问题标签 [functional-dependencies]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
986 浏览

database - Minimum cover of set of functional dependency

I was going through the conditions of minimum cover of a set of function dependencies.

Here, it is mentioned that the right hand side can have only single attribute. So {A1A2 → B1B2} is not possible. It should be split as {A1A2 → B1, A1A2 → B2}.

But in DBMS by Korth, the following condition is there

So, according to this {A1A2 → B1, A1A2 → B2} is not possible. The dependencies should be combined as {A1A2 → B1B2} to avoid repetition.

Please clarify which is correct.

0 投票
1 回答
2456 浏览

haskell - haskell 如何解决重叠实例?

如果我使用了错误的术语,请原谅,我是haskell 类型操作的初学者......我正在尝试使用具有功能依赖关系的重叠实例来使用HLists 进行一些类型级编程。

在这里,我的目标是尝试编写一个 typeclass HNoNils l l',这HNoNils l l'意味着,l作为一个列表类型(例如:)Int : String : EmptyNil : Int : HNill'是没有特定空类型的相应列表类型EmptyNil(示例的结果:)Int:String:Int:HNil

但是,当我按原样运行此代码时,我的所有hNoNils调用似乎都通过最不具体的第二个实例声明来解决,这意味着(至少看起来),对于所有人l来说,我都有HNoNils l l.

根据我所阅读的内容,使用OverlappingInstances扩展名,系统应该始终解析为最具体的实例。

这里

  • 第一个实例有约束(HNoNils l l',TtEq e EmptyNil True )

  • 第二个实例有约束HNoNils l l'

如果我错了,请原谅我,但似乎第一个实例比第二个更具体,所以应该针对那个,对吧?

我尝试添加约束以尝试消除重叠,即通过将单独的相反等式约束添加到第二个实例:

我尝试在此处删除重叠的实例扩展名,但出现重叠错误。

我不明白第二场比赛。毕竟,在这个决议中,我们有 e 等于 EmptyNil,所以TtEq e EmptyNil True......对吧?就此而言,类型系统甚至如何达到它提出这个问题的情况,毕竟在约束下你永远不应该遇到这种情况HNoNils (Hcons EmptyNil l) (HCons EmptyNil l')),至少我不这么认为。

重新添加 OverlappingInstances 时,我会遇到更奇怪的错误,我不明白:

第二个语句,TtEq EmptyNil EmptyNil False似乎是说一个实例是由函数调用生成的......?我有点困惑它是从哪里来的。

所以在试图解决这个问题时,我想知道:

  • 是否可以获得有关 Haskell 如何处理实例的更多详细信息?其中一些组合似乎是不可能的。即使只是解释该机制的文档的链接,也将不胜感激

  • OverlappingInstances对如何工作有更具体的定义吗?我觉得我错过了一些东西(比如“特异性”参数可能只适用于类型变量,而不适用于约束的数量......)

编辑:所以我尝试了 CA McCann 的建议之一(删除一些约束)到以下内容:

这样做会给我一些令人讨厌的重叠实例错误:

我觉得解决方法好像是自上而下而不是自下而上(系统永远不会尝试找到这样的实例)。

编辑 2:通过在第二个条件中添加一个小约束,我得到了预期的行为(参见 McCann 对他的回答的评论):

这里添加的东西是r~HCons e l'对第二个实例的约束。

0 投票
1 回答
550 浏览

database - 分解为 BCNF

假设 R = {A,B,C,D} 并且 FD = C→D,C→A,B→C

我应该找到: 1. 密钥 2. 它所在的 NF 3. BCNF(如果可能,如果还没有的话)

所以这就是我到目前为止所得到的:

  1. 关键是 B,因为它传递地确定了 C,而 C 又确定了 D 和 A。
  2. 它在 2NF 中,因为依赖关系是整个关键
  3. R1 = {B,C} R2 = {C, A, D}
    • 所以这就是我有问题的地方。标记方案表示将 R 分解为 AC、BC 和 CD。但是为什么我的答案不正确呢?我是说 FD 是 C -> {A,D},如果是的话,这与 C -> A 和 C -> D 有什么区别吗?
0 投票
4 回答
51082 浏览

database - 如何确定功能依赖关系

我目前正在为一个大学项目工作,现在我对功能依赖部分有点困惑。对于这个项目,我必须根据我自己的项目规范创建一个逻辑数据模型,并确定功能依赖关系。

例如,我为“用户”表提供了以下属性。
R(user_id,用户名,regDate,类型,订阅)

主键: user_id
唯一键:用户名
外键:订阅

示例数据集可能类似于:

1, JohnS, 01-01-2012, 管理员, NULL
2, PeterB, 02-01-2012, 版主, 电影
3, PeterA, 02-01-2012, 用户, 电影
4, Gary, 03-01-2012, 用户, 书籍
5, 艾琳, 03-01-2012, 用户, 电影
6, 斯坦, 03-01-2012, 用户, 电影
7, 艾萨克, 04-01-2012, 用户, 书籍

我不明白的部分是我如何确定功能依赖关系。我最初的感觉是有两个函数依赖,它们是:
user_id -> username, regDate, type, subscription
username -> user_id, regDate, type, subscription

但是,查看讲座幻灯片中的其他示例,我怀疑这是否正确。

0 投票
2 回答
1658 浏览

functional-dependencies - 从功能依赖中找到候选键

对于具有以下功能依赖关系的关系 {A,B,C,D} -

使用我在其中一个站点上找到的特定方法,我将候选键作为 ABCD。那正确吗 ?什么是正确的候选键?

0 投票
1 回答
174 浏览

haskell - MultiParamTypeClasses, FunctionalDependencies, and calling ambiguous functions

With functional dependencies, I can declare the Foo class:

and when I call foo2, everything works fine. The compiler knows which instance to use because of the dependency.

But if I remove the dependency to create Foo':

everything still compiles fine, but now whenever I try to call foo2' GHC throws an error about not being able to resolve which instance to use because b is ambiguous.

Is it ever possible to call foo2' without error? If so, how? If not, why doesn't it generate a compilation error?

0 投票
1 回答
780 浏览

database - 识别 Boyce Codd 范式

我试图弄清楚 3NF 和 BCNF 之间的差异,我想我已经到了那里,但如果有人能提供帮助,那就太好了。

以下是第 3 范式中的一系列关系(从识别功能依赖关系中得到帮助,而这些关系又从 Connolly & Begg 的数据库系统中获取):

每个房产只有一个所有者,客户可以租用这些房产。假设每个房产的租金是固定的。

所以我的问题是:这些也在 BCNF 中吗?

我的预感是 ClientRental 关系不是因为 PropertyNo->ownerNo。所以 PropertyNo 是函数依赖的决定因素,但它不是超键。

我在正确的球场附近吗?

0 投票
2 回答
293 浏览

database - 博伊斯鳕鱼和寻找候选键

在理解 boyce codd 和找到候选键方面需要绝望的帮助。我在这里找到了一个链接http://djitz.com/neu-mscs/how-to-find-candidate-keys/我已经理解了大部分但我卡住了

例如

(ABCDEF)

AB → CDE

BCD → A

公元前 → 公元

BD → E

据我从链接中了解的权利,我知道您从左侧找到只有 B 的公共集,从右侧找到没有的公共集

现在我该去哪里?我知道所有候选集都会有 B,但我需要在那之后找到候选集的指导。有人用简单的语言解释

0 投票
1 回答
4083 浏览

sql - 用于推断函数依赖关系的反身性公理

如您所知,有 3 个Armstrong 公理可用于推断关系数据库的所有功能依赖关系。(X、Y 和 Z 是一组属性)

  1. 自反性如果 X ⊆ Y,则 Y → X
  2. 增强如果 X → Y,那么对于任何 Z,XZ → YZ
  3. 传递性如果 X → Y 和 Y → Z,则 X → Z

例如,如果我们有这样的模式,我理解增强和传递性:

SOME_SCHEMA(a, b, c, d)

具有这样的功能依赖:

  1. a → b
  2. b → c

通过使用增强,我们可以得到ac → bc或通过使用传递性,我们可以得到a → c等等,但是我不确定如何使用自反性公理推断更多的函数依赖关系?某个属性是某个其他属性的子集究竟意味着什么?

你能给我看一个使用我的模式或创建你自己的模式的例子吗?

0 投票
2 回答
148 浏览

haskell - 在 Haskell 中用函数依赖表示类型类关系

我想表达我有 3 个相关的类型类。

我有两个文件。第一的:

第二:

我得到的错误:

我错过了什么?