2017-07-29 74 views
-1

考虑具有不同列的关系表,您将调用唯一且非空值,超级键或候选键的集合?候选键或超级键

+0

检查[这里](https://stackoverflow.com/questions/8337309/superkey-candidate-key-primary-key),**希望这有助于:)** – Ahmad

+0

那么,什么是定义的条款?搜索你的问题的结果是什么? – philipxy

+0

[Superkey,候选键和主键]可能重复(https://stackoverflow.com/questions/8337309/superkey-candidate-key-primary-key) – philipxy

回答

0

这将解释这一差别在它们之间,从而将帮助您确定这是否是一个候选键超键

一个Super键是一套或多列的一个唯一标识表中的行。

候选键是从超级键集中选择的,我们在选择候选键时唯一要注意的是:它不应该有任何多余的属性。这就是他们被称为最小超级按键的原因。

Employee表有三列:Emp_Code,Emp_Number,Emp_Name

超级键:

以下组的所有都能够唯一标识的职员表的行。

{Emp_Code} 
{Emp_Number} 
{Emp_Code, Emp_Number} 
{Emp_Code, Emp_Name} 
{Emp_Code, Emp_Number, Emp_Name} 
{Emp_Number, Emp_Name} 

候选关键字:

正如我上文所述,他们没有多余的属性最小超键。

{Emp_Code} 
{Emp_Number} 

作为摘要

超密钥是一组列的唯一标识row.Whereas一个候选键将是最小的一组列的唯一标识的行。所以基本上Superkey是一个候选键与其中不必要的列。

希望这是有益:)

+0

CK是超级键。所以一个超级按键不一定比CK有更多的coluns。 – philipxy

0

我希望这将有助于你

一个超密钥在数据库组织的关系模型定义为一组,它拥有一个关系变量的属性在分配给该变量的所有关系中,没有两个不同的元组(行)具有相同的属性值。超级键可以被定义为关系模式的一组属性,模式的所有属性在功能上都依赖于该属性。

所有属性的集合是一个微不足道的超级键,因为在关系代数中不允许重复行。

如果属性集合K是关系R的超级键,那么在任何时候都是这样的情况,即R对K的投影与R本身具有相同的基数。

superkey是一个表中的一组属性,其值可以用来唯一标识一个元组。候选关键字是识别元组所必需的最小属性集合;这也被称为最小超级键。给定由属性employeeID,name,job和departmentID组成的雇员模式,我们可以将employeeID与此表的任何或所有其他属性组合使用,以唯一标识表中的元组。此架构中的超级用户示例为{employeeID,Name},{employeeID,Name,job}和{employeeID,Name,job,departmentID}。最后一个例子被称为平凡的超级键,因为它使用这个表的所有属性来标识元组。

在真实的数据库中,我们不需要所有这些属性的值来标识元组。根据我们的示例,我们只需要set {employeeID}。这是一个最小的超级键,也就是说,可以用来识别单个元组的最小的一组属性。 employeeID是候选键。