0
我目前正在努力研究数据库,并遇到超级密钥的概念,这让我有点困惑,有人可以帮助定义超级密钥实际上是什么?就我的理解而言,超级键是表格中使列组唯一的列,是吗?数据库 - 超级密钥
可以说我有三个表,客户账户和交易 他们每个看起来像下表:
将“CID”为客户超密钥?或者有不止一个? 哪个superkey违反了表格?据我了解{num,type,desc}违反了ACCOUNT,因为表中没有明确的列,这是正确的吗? TRANSACTION如何?
最善良的问候,
KRS
感谢您的快速响应。 只是几个简单的问题。超级键和最小超级键是同一件事吗?另外,关系可以有多个超级键吗?所以例如或TRANSACTION的超级键将是{cid + type + time}和{num + type + time}和{cid + time} –
@赞,不,最小的超级键是列的最小集合, 。根据定义,任何包含最小超级键的组合都是超级键本身。所以'cid'和'cid + name'都是超级键,因为它们都不可能重复。这也回答了你的第二个问题,关系中可以有多个超级键。这些特定的例子是否是超级密钥取决于对数据的限制,例如,如果每个客户在同一类型上每时间单位允许五笔交易,'cid + type + time'不是超级密钥。 – paxdiablo