【发布时间】:2013-10-29 02:23:43
【问题描述】:
我们知道,实体集的超级键是一组一个或多个属性,其值唯一地确定每个实体 实体集的候选键是最小超键 虽然可能存在多个候选键,但选择其中一个候选键作为主键。
我们再次知道,参与实体集的主键组合形成关系集的超键。谁能通过一个简单的例子帮助我理解它们之间的关系?
【问题讨论】:
-
关系:员工 {EmployeeNum, LoginName}。超级键:{EmployeeNum}、{LoginName}、{EmployeeNum、LoginName}。候选键:{EmployeeNum}、{LoginName}。这有帮助吗?
-
听起来 ER 和关系数据模型的概念在这里有点混淆了。 @Niladri 您是否在询问如何将 ER 模型转换为关系模型的示例?例如,将 ER 模型 Person(Name, Address) -
- Project(ProjectName, Description) 映射到三个关系 Person(Name, Adress),worksFor(Name,ProjectName), Project(ProjectName, Address)(关键属性以斜体表示) -
一所学校可以有任意数量的学生。但是,如果我们知道年级和卷号,那么我们就可以唯一地识别该学校的学生。但是这里的 {LoginName} 可以唯一标识一个员工吗?@sqlvogel
-
@Niladri,当然,如果 LoginName 可以识别员工,前提是它是唯一的业务规则,并且它的唯一性是通过Employees表中的键约束强制执行的。
标签: sql relational-database primary-key candidate