问题标签 [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.
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.
haskell - haskell 如何解决重叠实例?
如果我使用了错误的术语,请原谅,我是haskell 类型操作的初学者......我正在尝试使用具有功能依赖关系的重叠实例来使用HLists 进行一些类型级编程。
在这里,我的目标是尝试编写一个 typeclass HNoNils l l'
,这HNoNils l l'
意味着,l
作为一个列表类型(例如:)Int : String : EmptyNil : Int : HNil
,l'
是没有特定空类型的相应列表类型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'
对第二个实例的约束。
database - 分解为 BCNF
假设 R = {A,B,C,D} 并且 FD = C→D,C→A,B→C
我应该找到: 1. 密钥 2. 它所在的 NF 3. BCNF(如果可能,如果还没有的话)
所以这就是我到目前为止所得到的:
- 关键是 B,因为它传递地确定了 C,而 C 又确定了 D 和 A。
- 它在 2NF 中,因为依赖关系是整个关键
- R1 = {B,C} R2 = {C, A, D}
- 所以这就是我有问题的地方。标记方案表示将 R 分解为 AC、BC 和 CD。但是为什么我的答案不正确呢?我是说 FD 是 C -> {A,D},如果是的话,这与 C -> A 和 C -> D 有什么区别吗?
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
但是,查看讲座幻灯片中的其他示例,我怀疑这是否正确。
functional-dependencies - 从功能依赖中找到候选键
对于具有以下功能依赖关系的关系 {A,B,C,D} -
使用我在其中一个站点上找到的特定方法,我将候选键作为 ABCD。那正确吗 ?什么是正确的候选键?
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?
database - 识别 Boyce Codd 范式
我试图弄清楚 3NF 和 BCNF 之间的差异,我想我已经到了那里,但如果有人能提供帮助,那就太好了。
以下是第 3 范式中的一系列关系(从识别功能依赖关系中得到帮助,而这些关系又从 Connolly & Begg 的数据库系统中获取):
每个房产只有一个所有者,客户可以租用这些房产。假设每个房产的租金是固定的。
所以我的问题是:这些也在 BCNF 中吗?
我的预感是 ClientRental 关系不是因为 PropertyNo->ownerNo。所以 PropertyNo 是函数依赖的决定因素,但它不是超键。
我在正确的球场附近吗?
database - 博伊斯鳕鱼和寻找候选键
在理解 boyce codd 和找到候选键方面需要绝望的帮助。我在这里找到了一个链接http://djitz.com/neu-mscs/how-to-find-candidate-keys/我已经理解了大部分但我卡住了
例如
(ABCDEF)
AB → CDE
BCD → A
公元前 → 公元
BD → E
据我从链接中了解的权利,我知道您从左侧找到只有 B 的公共集,从右侧找到没有的公共集
现在我该去哪里?我知道所有候选集都会有 B,但我需要在那之后找到候选集的指导。有人用简单的语言解释
sql - 用于推断函数依赖关系的反身性公理
如您所知,有 3 个Armstrong 公理可用于推断关系数据库的所有功能依赖关系。(X、Y 和 Z 是一组属性)
- 自反性:如果 X ⊆ Y,则 Y → X
- 增强:如果 X → Y,那么对于任何 Z,XZ → YZ
- 传递性:如果 X → Y 和 Y → Z,则 X → Z
例如,如果我们有这样的模式,我理解增强和传递性:
SOME_SCHEMA(a, b, c, d)
具有这样的功能依赖:
- a → b
- b → c
通过使用增强,我们可以得到ac → bc或通过使用传递性,我们可以得到a → c等等,但是我不确定如何使用自反性公理推断更多的函数依赖关系?某个属性是某个其他属性的子集究竟意味着什么?
你能给我看一个使用我的模式或创建你自己的模式的例子吗?
haskell - 在 Haskell 中用函数依赖表示类型类关系
我想表达我有 3 个相关的类型类。
我有两个文件。第一的:
第二:
我得到的错误:
我错过了什么?