数据库 - 超级密钥

时间:2014-03-26 02:33:30

标签: sql database

我目前正在尝试研究数据库并遇到了超级密钥的概念,这让我感到困惑,有人可以帮助定义超级密钥实际上是什么吗?就我的理解而言,超级键是表格中的列,它使元组独一无二,是吗?

假设我有三个表,CUSTOMER,ACCOUNT和TRANSACTION 它们每个看起来都像下表:

enter image description here

'cid'会成为CUSTOMER的超级钥匙吗?或者不止一个? 哪个超级钥匙违反了表格?据我所知{num,type,desc}违反了ACCOUNT,因为表中没有明确的列,这是正确的吗? TRANSACTION怎么样?

最诚挚的问候,

KRS

1 个答案:

答案 0 :(得分:2)

超级键(简单地)是一组没有重复的属性(列)。换句话说,它是唯一键所需的列集。

在客户表中, minimal 超级密钥为cid

它不能是name,因为有两个人叫Jill,它不能是phone因为杰克和一个吉尔显然是在同一个房子里一起吵架。

在事务表中,最小超级密钥很可能是cid+num+time,假设您每秒不允许多于一个事务。