Primary key和prime属性有什么区别?

use*_*499 22 database rdbms

主键(复合键)和主要属性之间有什么区别吗?

Sri*_*niV 32

候选键是唯一标识表中行的键.任何已识别的候选键都可以用作表的主键.不属于主键的候选键称为备用键.可以将候选密钥描述为超级密钥,其仅包含确定唯一性所需的最小列数.

Prime属性是候选键的属性,用于定义唯一性(例如:员工数据库中的SSN号)

主键是表中的列,其值唯一地标识表中的行.主要密钥是根据其对业务的感知价值作为标识符从候选列表中选择的.

主键值:

  • 必须唯一标识该行;
  • 不能有NULL值;
  • 不应该随时改变;
  • 并且应该尽可能短.

如果主键是多个列的组合,则将其称为复合键.

  • 谢谢.这意味着如果(名称,地址)是主键,那么"名称"和"地址"是它的主要属性? (4认同)

小智 6

为了理解主键和主要属性的区别,首先应该知道什么是超级键和候选键。

超级键:任何属性/属性组合,其闭包,基于给定的函数依赖关系,确定完整的关系是超级键(一个关系可以有多个超级键)

例如在关系 R(A,B,C,D) 中;给定函数依赖为:

ABC->D

AB->CD

A->BCD

D->ABC

以下是超级键

ABC; 因为它的闭包给出了完整的关系,即 (ABC)->ABCD

AB; 因为它更接近也给出了完整的关系,即 (AB)->ABCD

一种; 因为它的闭包也给出了完整的关系,即 (A)->ABCD

D; 因为它的闭包也给出了完整的关系,即 (D)->ABCD

候选键:任何真子集不是超级键的超级键都是 候选键。 (一个关系可以有多个候选键)

因此,在上面的示例中,AD是唯一的候选键。

主键:数据库设计者选择用于识别记录的任何候选键(可能是也可能不是最小的)都是主键。(一个关系只能有一个主键/(复合主键:由多列组成的主键)

在上面的例子中,A (假设)是主键。

主要属性:存在于任何候选键中的属性是主要属性。

因此,在上面的示例中,AD是主要属性。