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

时间:2014-02-27 09:59:31

标签: rdbms database

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

5 个答案:

答案 0 :(得分:28)

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

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

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

主键值:

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

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

答案 1 :(得分:2)

主键可以由单个属性或多个属性组合而成。 例如

name login email
Bob  catlover catlover@123.com
Jason doglover doglover@123.com

登录将是主键,属性将是catlover / doglover在该键中归属的所有内容

答案 2 :(得分:0)

Student_table {IndexNo,Name,ExamNo,Age,Class,City}

  • {IndexNo},{Name,ExamNo}是候选关键字。我将从它们中选择{IndexNo}作为主键。所有indexNo,Name,ExamNo都是主要属性

Employee_table {ID,Name,MobileNo,Age,Height}

  • {ID},{MobileNo}是候选密钥。我将从它们中选择{ID}作为主键。所有这些ID,MobileNo属性都是主要属性

让我们看一下定义。 (属性表示列)

候选键-可用于唯一标识表记录的属性或属性组合。

主键-形成候选键的属性。

主键-候选键中的一个属性,用于唯一标识  表记录。它应该是唯一的,不能为Null,不应经常更新。

答案 3 :(得分:0)

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

超级键:其闭包在以下位置的任何属性/属性组合 给定功能依赖关系的基础确定 完整的关系是超级键(一个关系可以具有多个超级键)

例如关于 R(A,B,C,D); 给出的功能依赖性为:

ABC-> D

AB-> CD

A-> BCD

D-> ABC

以下是超级键

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

AB;因为距离越近,它也具有完整的关系,即(AB)-> ABCD

A;因为它的闭包也提供了完整的关系,即(A)-> ABCD

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

候选键:任何其适当子集不是超级键的超级键都是 候选密钥。 (一个关系可能具有多个候选密钥)

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

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

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

主要属性:出现在任何候选键中的属性是主要属性。

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

答案 4 :(得分:0)

主键:主键是用于唯一标识表中所有记录的列(或列的组合)。

主要属性:理想情况下,所有属性都没有传入边缘形式的主要属性 属性。