在 https://web.archive.org/web/20130514174856/http://databases.about.com/cs/specificproducts/g/determinant.htm 我发现了这个 Mike Chapple :
定义: 数据库表中的行列式是可用于确定分配给同一行中其他属性的值的任何属性。
示例: 考虑一个具有employee_id、first_name、last_name 和date_of_birth 属性的表。在这种情况下,字段employee_id 确定其余三个字段。姓名字段不能确定employee_id,因为公司可能有多个员工具有相同的名字和/或姓氏。类似地,DOB 字段不能确定employee_id 或name 字段,因为可能有多个员工的生日相同。
该定义是否也适用于候选键?
原文由 Aparan 发布,翻译遵循 CC BY-SA 4.0 许可协议
行列式是 FD(函数依赖)的左侧属性集。但它可能不是 CK(候选键)。行列式不是 CK
考虑这个(显然是非 BCNF)表:
{State} 是 {StateName, StateTax} 的行列式,但它不是 CK。
对 BCNF 的规范化会将 StateName 和 StateTax 从 US_Address 表移到带有 State 的 States 表中。