【问题标题】:DBMS All keys combined confusionDBMS 所有键组合混淆
【发布时间】:2013-09-26 18:19:13
【问题描述】:

我对数据库管理系统中的键感到困惑。因为有很多部分问题......但这是一个很好的综合问题。这就是我在这里发帖的原因。 超级密钥、密钥、主密钥、备用密钥、候选密钥、最小密钥之间的混淆 这是我的理解。

SUPER KEY : 可以唯一标识一个元组的属性或属性集。

候选键:所有超级键的集合..

Key : 候选键集中的单个键,它是最小的(存在最少的属性)

主键:候选键集中的最小键..

备用键:除主键外的所有候选键的集合

外键。 : 我很清楚很难提及所有的事情..

但我对 superkey 、 key 、 Candidate key 、 Primary key 、 Alternate key 有混淆 .. (如果剩余,添加任何键) 所有的定义都是好的?? 这些键的 ER 模型定义与关系模型中的定义不同?

你能用例子给出你的答案吗?一个有这些所有键的表。!! 谢谢...!!

【问题讨论】:

    标签: key primary-key rdbms database candidate-key


    【解决方案1】:

    superkey 是任何属性集,其值对于关系中所有允许的元组集始终保证唯一。

    候选键(= 最小超键)是每个超键中唯一的最小属性集。因此,从候选键中删除任何一个属性都会使其不唯一(不再是超级键)。

    主键就是任何候选键。主键和任何其他候选键之间没有区别。

    备用键是未指定为主键的任何候选键。

    外键根本不是键(名字有点可惜)。外键只是关系的一组属性,它们受参照完整性约束,其中同一组属性也是另一个关系中的候选键。

    一个例子?假设你有一个婚姻关系,具有夫妻属性(为简单起见,我只考虑一夫一妻制的男女婚姻)

    Marriages {Husband, Wife}
    

    Marriages 关系具有三个超级键:{Husband, Wife}{Husband}{Wife}(一个人一次只能有一个配偶,因此这两个属性都必须是唯一的)。

    {Husband}{Wife} 是候选键。

    现在考虑{Husband}{Wife} 这两者中的哪一个可能是主键,哪个是备用键?答案是这无关紧要:无论您选择称其为“主”键,这种关系的形式、功能和预期含义都完全相同。主键和备用键是等价的概念,关系模型不区分它们。

    实体关系建模确实倾向于区分主键和其他键,并且通常为每个实体提供一个键优先于其他键,有时会排除或损害其他同等重要的键。这是 ER 建模的一个方面,通常会并且确实会导致数据库设计和数据管理中的错误。

    【讨论】:

    • 谢谢...非常感谢.. :)
    猜你喜欢
    • 2013-12-26
    • 2011-11-22
    • 1970-01-01
    • 2014-03-27
    • 1970-01-01
    • 2019-07-04
    • 1970-01-01
    • 1970-01-01
    • 2017-09-20
    相关资源
    最近更新 更多