我试图了解 BCNF 是什么,我有这样的关系:
学生(id、ssn、电子邮件、姓名、姓氏)
在哪里
- id 是具有非 null 和自动增量属性的主代理键,
- ssn 是具有非空属性的唯一键,并且
- email 也是具有非空属性的唯一键。
是否有任何违反 BCNF 的内容,如果是,我该如何通过更好的设计来克服这种情况?
编辑
我正在尝试编写我的功能依赖项,但如果我错了,请纠正我。
有三个属性决定了其他属性,因此令人困惑的是 ssn 和 email 都存在于等式的左侧和右侧。似乎这种关系不在 bcnf 中,但一定有问题:)
id -> (ssn, email, name, surname)
ssn -> (id, email, name, surname)
email -> (id, ssn, name, surname)