主键(primary key)和候选关键字(candidate key)的区别

虽然主键是从候选键中选择出来的,但是主键与其他候选键之间存在一些差异,本文将对此进行详细讨论。数据库设计是维护和存储数据时最重要的活动之一。在这个设计过程中,必须创建具有许多关系的不同表。为了访问数据库中的这些表,现代数据库设计语言(如MYSQL、MSAccess、SQLite等)中使用了不同类型的键,其中候选键和主键已成为数据库设计中必不可少的部分。...

主键与候选键

虽然主键是从候选键中选择出来的,但是主键与其他候选键之间存在一些差异,本文将对此进行详细讨论。数据库设计是维护和存储数据时最重要的活动之一。在这个设计过程中,必须创建具有许多关系的不同表。为了访问数据库中的这些表,现代数据库设计语言(如MYSQL、MSAccess、SQLite等)中使用了不同类型的键,其中候选键和主键已成为数据库设计中必不可少的部分。

什么是候选密钥(a candidate key)?

候选键是数据库表中的一列或一组列,可用于唯一标识任何数据库记录,而无需引用任何其他数据。数据库的每个表可以有一个或多个候选键。可以使用函数依赖项创建一组候选键。候选密钥中有一些重要的特性。他们是;

•候选关键字在域内应是唯一的,且不应包含任何空值。

•候选键不应更改,并且对于实体的特定出现,它必须保持相同的值。

候选键的主要用途是帮助识别大表中数百万行中的一行。每个候选密钥都有资格成为主键。然而,在所有候选键中,最重要和最特殊的候选键将成为表的主键,并且是候选键中最好的。

什么是主键(a primary key)?

主键是表的最佳候选键,用于唯一标识存储在表中的记录。在数据库中创建新表时,我们需要选择主键。因此,为表选择主键是数据库设计者应该做的最关键的决定。在决定主键时,最重要的约束是表的选定列只应包含唯一值,而不应包含任何空值。设计表格时常用的一些主键是社会保险号码(SSN)、身份证号码和国民身份证号码(NIC)。

程序员应该记住仔细选择主键,因为它很难更改。因此,根据程序员的说法,创建主键的最佳实践是使用内部生成的主键,例如由msaccess的AutoNumber数据类型创建的记录ID。如果我们试图将一条记录**主键与现有记录重复的表中,则**操作将失败。主键值不应该一直变化,所以保持静态主键更为重要。

主键(primary key)和候选关键字(candidate key)的区别

主键是最好的候选键。

主键(primary key)和候选关键字(candidate key)的区别

•候选键是限定为唯一的列,而主键是唯一标识记录的列。

•没有候选键的表不代表任何关系。

•数据库中一个表可以有多个候选键,但一个表只能有一个主键。

•虽然主键是候选键之一,但有时它是唯一的候选键。

•一旦选择了主键,其他候选键将成为唯一键。

•实际上,候选键可以包含空值,尽管它目前不包含任何值。因此,候选键不适合主键,因为主键不应包含任何空值。

•目前唯一的候选键也可能包含重复值,使候选键无法成为主键。

小结:

主键与候选键

候选键和主键是数据库设计中用来唯一标识记录中的数据和建立数据库表之间关系的关键键。一个表应该只包含一个主键,并且可以包含多个候选键。目前大多数的主数据库都能自动生成密钥。因此,主键和候选键为数据库管理系统提供了大量的支持。

 

图片来源:

  1. SqlPac的主键(CC by-SA 3.0)

  • 发表于 2020-10-29 02:12
  • 阅读 ( 1302 )
  • 分类:IT

你可能感兴趣的文章

候选基因(candidate gene)和gwas公司(gwas)的区别

候选基因和GWAS的关键区别在于,候选基因方法研究的是少数预先指定的感兴趣基因的遗传变异,而GWAS则调查特定疾病背后的共同基因变异的整个基因组。 候选基因法和全基因组关联研究(GWAS)是检测疾病遗传易感性的两种...

  • 发布于 2020-09-26 04:00
  • 阅读 ( 226 )

外键(foreign key)和主键(primary key)的区别

外键和主键之间的键区别在于,外键是一列或一组列,它们引用另一个表的主键或候选键,而主键是一列或一组列,可用于唯一标识表中的行。 可以用来标识或访问数据库中一行或一组行的列或一组列称为键。关系数据库中...

  • 发布于 2020-10-26 12:19
  • 阅读 ( 2074 )

主键(primary key)和候选关键字(candidate key)的区别

...选键。候选密钥中有一些重要的特性。他们是; •候选关键字在域内应是唯一的,且不应包含任何空值。 •候选键不应更改,并且对于实体的特定出现,它必须保持相同的值。 候选键的主要用途是帮助识别大表中数百万行中的...

  • 发布于 2020-10-29 02:12
  • 阅读 ( 1302 )

二分键(dichotomous key)和分类关键字(taxonomic key)的区别

...许用户在任何时候输入密钥。 二分键(dichotomous key)和分类关键字(taxonomic key)的共同点 它们都是识别钥匙。 事实上,二分键是一个分类键。 二分键(dichotomous key)和分类关键字(taxonomic key)的区别 二分法密钥是一种由成对语句组成...

  • 发布于 2020-11-02 16:06
  • 阅读 ( 1323 )

如何使用python构建twitter、instagram和reddit机器人程序

...用了两个助手函数。Instagram在JSON响应中发送一个图像“候选者”列表。选择这些图像中最大的一个,以便以最高分辨率显示媒体。 ...

  • 发布于 2021-03-21 23:06
  • 阅读 ( 498 )

mysql数据库模式编写入门指南

在开发一个软件项目时,最重要的、基本的和内在的方面之一是一个结构合理的数据库模式。这相当于建造一所需要确保地基适当铺设的房子,否则建造优质房屋的机会大大减少。 ...

  • 发布于 2021-03-26 19:24
  • 阅读 ( 213 )

主键(primary key)和唯一键(unique key)的区别

...确定数据应如何存储在系统中。 主键 主键(也称为primary关键字)是关系数据库中唯一的键,用于标识数据库表中的每条记录。它是一种唯一的标识符,比如一个人的社会安全号码、电话号码、***号码或车辆牌照号码。数据库只...

  • 发布于 2021-06-25 02:25
  • 阅读 ( 455 )

主键(primary key)和唯一键(unique key)的区别

主键和唯一键的主要区别在于,一个表中只能有一个主键,不能有任何空值,因为它的功能是标识表中的每个记录,而一个表中可以有多个唯一键,因为它们的功能是确保一个列只具有唯一值,这样就不会有空值任何重复的数据...

  • 发布于 2021-06-30 17:00
  • 阅读 ( 337 )

公钥(public key)和密码学中的私钥(private key in cryptography)的区别

密码学中公钥和私钥的主要区别在于公钥用于数据加密,而私钥用于数据解密。 公钥和私钥是密码学中用于非对称加密的两种锁定机制。公钥是一种与加密算法一起使用的锁,用于将消息转换为不可读的形式。私钥是一种与解...

  • 发布于 2021-06-30 22:53
  • 阅读 ( 712 )

主键(primary key)和外键(foreign key)的区别

主键和外键的主要区别在于主键用于唯一地标识表中的记录,而外键用于将两个表连接在一起。 大多数商业组织使用数据库来存储数据。数据库管理系统(DBMS)是一种帮助创建和管理数据库中数据的软件。一种先进的数据库管...

  • 发布于 2021-07-01 02:29
  • 阅读 ( 930 )
rjopt31578
rjopt31578

0 篇文章

相关推荐