我目前正在尝试研究数据库并遇到了超级密钥的概念,这让我感到困惑,有人可以帮助定义超级密钥实际上是什么吗?就我的理解而言,超级键是表格中的列,它使元组独一无二,是吗?
假设我有三个表,CUSTOMER,ACCOUNT和TRANSACTION 它们每个看起来都像下表:
'cid'会成为CUSTOMER的超级钥匙吗?或者不止一个? 哪个超级钥匙违反了表格?据我所知{num,type,desc}违反了ACCOUNT,因为表中没有明确的列,这是正确的吗? TRANSACTION怎么样?
最诚挚的问候,KRS
答案 0 :(得分:2)
超级键(简单地)是一组没有重复的属性(列)。换句话说,它是唯一键所需的列集。
在客户表中, minimal 超级密钥为cid
。
它不能是name
,因为有两个人叫Jill,它不能是phone
因为杰克和一个吉尔显然是在同一个房子里一起吵架。
在事务表中,最小超级密钥很可能是cid+num+time
,假设您每秒不允许多于一个事务。