什么是博伊斯-科德范式(BCNF)?

BCNF最小化冗余并提高数据完整性

Boyce-Codd正常形式的目标是增加数据的完整性通过组织关系数据库的列和表,以实现数据库的规范化。数据库规范化当表格之间建立的关系以及表格有定义的规则时,发生在使数据库更加灵活并且保留数据的关系时发生。

20岁左右的金发黑人妇女做她的软件开发项目的特写侧视图。她坐在台式电脑前,一边用电脑工作一边喝着咖啡。
gilaxia /盖蒂图片社

数据库规范化的目标是消除冗余数据并确保数据依赖有意义。当相同的数据没有存储在多个表中或仅存储在多个表中时,数据库就被规范化了相关数据存储在表中。

博伊斯-科德范式的起源

遵循一系列指导方针确保数据库规范化。这些指导方针被称为正常的形式从1到5。一个关系数据库被描述为标准化如果满足前三种形式:1NF, 2NF和3NF。

BCNF是Raymond Boyce和Edgar Codd在1974年创建的第三范式(3NF)的扩展。他们致力于创建数据库模式,以最小化冗余,减少计算时间。第三种标准形式除去不依赖于主键的列,并满足第一和第二种标准形式中的准则。BCNF有时被称为3.5NF,它满足3NF的所有要求,并且要求候选键不依赖于表中的其他属性。

在创建BCNF时,Boyce是结构化英语查询语言(后来标准化为SQL)的主要开发人员之一,这种语言通过使用Codd的关系模型改进了数据检索。在这个模型中,Codd假设可以降低数据库的结构复杂性,这意味着查询可以更加强大和灵活。

Codd使用他的关系数据库洞察力定义了1NF、2NF和3NF准则。他与博伊斯一起定义了BCNF。

候选钥匙和BCNF

一个候选关键字在数据库中形成唯一键的表中的列或列的组合。属性的组合标识一个数据库记录,而不引用任何其他数据。每个表可以包含多个候选键,其中任何一个都可以作为主键。一个表只包含一个主键。

候选钥匙必须是唯一的。

如果每个决定因素是候选密钥,则关系在BCNF中。考虑一个存储员工信息并具有属性的数据库表< Employee_Id>, 和<标题>

在此表中,字段< Employee_Id >确定first_name.同样,元组()确定< Employee_id >

雇员Id 标题
13133 艾米丽 史密斯 经理
13134 吉姆 史密斯 联系
13135 艾米丽 琼斯 联系


候选人键数据库是个< Employee_Id >因为它是唯一不能被其他行使用的值。

此页面是否有帮助?