候选键是一个在数据库中工作的参考点
没有任何上下文,当他们谈论候选键时,很难猜出人们在谈论什么。对于没有经验的人来说,探索这些数据库对象的使用从简单的想法开始,即数据库结构中的不同表和数据字段通常被称为“密钥”,并且以某种方式组织它们可以提供更好的数据处理解决方案。在这里,我们将了解候选键及其使用方法。
主键和候选键
解释候选键的一种相对简单的方法是关于称为主键的东西。通常,数据库表只能有一个主键,表示该表中的给定列。但是,可以有几个候选键,这些键被定义为可用作主键的键。
识别潜在的主键非常重要,因为表中的主键是一种保持所有相关记录的直接方式,并且为表中的每一行提供一个唯一标识符。例如,在客户列表中,数据处理程序需要提供具有每个单独客户的唯一标识符的特定列。使用客户的名字,甚至是姓氏,都不会起作用,因为可能存在重复。这就是为什么主键通常由创建的数字组成,以保证唯一性,就像长数字字符串为我们的信用卡和借记卡上的金融交易提供唯一标识符一样。
候选钥匙的标准
现在我们知道候选键是什么,我们可以查看“资格”的具体标准。要成为候选键,数据库列必须对每一行都是唯一的(如上所述)。它也必须是“非NULL”; 也就是说,该列必须不能保存NULL值,这需要特别注意输入设计。在某些记录上可能为空的字段可能被取消资格作为候选键。第三个标准是候选密钥应该“抵制变化” - 这并不是说候选密钥或主要密钥永远不会改变,但很多开发人员都认为最好使用这些“锚”角色中的更多静态标识符会对数据查询产生很大影响。
使用候选键
记住许多不同的数据库列可以作为候选键的想法,重要的是要理解通常有多种方式来指定主键,并且在很多方面,每个专业数据管理器都有自己独特的方法和前景,一种使数据结构有效的秘诀。因此,较新的数据库专业人员可能会向更有经验的老年人询问有关如何成功设置和使用候选键的各种建议。
一个常见的想法是使用多个列来创建称为复合键的东西。这是创建持久主键的一种方法,但不同的专业人士有自己的看法。有些人认为这是一种懒惰的编码方式,并指出在将主键与另一个数据库中的外部外键相关联时携带多个字段的负担。
其他争论包括使用主键的时间戳,以及使用简单的自动生成的标识列,该列由每个记录的唯一生成的数字组成。询问专业人士,使用简单的临时生成的ID号是否过于简单,并且您将根据该人的理念来获得响应,以确定良好的数据结构。答案包括诸如生成的数字是否可用于特定类型的查询,以及这些自动创建的整数中的一个是否可以保存数据库管理员的培根,例如,如果突然需要集成一组全新的记录。一些经验丰富的数据处理器调用Occam的Razor,并警告不要过于精心设计候选和主键,或任何其他设计元素。
数据库参考点
从一般意义上讲,考虑候选键的一个好方法是作为参考点在数据库中工作,其方式与护照适用于旅行者的方式大致相同。您的护照是海关官员或其他人快速查阅大量信息的方式,例如您的姓名,性别等。它也应该是独一无二的。但是,如在具有多个候选键的数据库中,您的护照不是海关可以使用的唯一文件。驾驶执照也可以用于相同的目的并提供大量相同的信息。这就是为什么海关的规划者或其他人需要选择一个识别文档,就像程序员必须选择一个候选键作为主键一样。
这个类比也有助于说明为什么没有这个责任的人可能想知道这些密钥在数据结构中是如何工作的。随着当今数据和分析行业的进步,以及许多管理人员和中间人与技术供应商密切合作,更好地了解数据库原则可以派上用场,即使对于非技术人员也是如此。肯定不会受伤。