Database design 需要3NF分解的帮助吗

Database design 需要3NF分解的帮助吗,database-design,relational-database,functional-dependencies,third-normal-form,Database Design,Relational Database,Functional Dependencies,Third Normal Form,关系RA、B、C、D、E具有函数依赖关系A->B、C、D、E和BCD->E A是一把钥匙。 但是,这个关系不在3NF中,因为BCD->E是一个冲突,其中E不是一个基本属性,BCD不是一个超级键。那么,如果我们分解关系,我们会得到吗 R1A,B,C,D和R2B,C,D,E?或者我在这个分解中不正确您的分解是正确的,但是从技术上讲,您最好引入第三个关系,因为复合主键在DBA的观点中不是一个好的实践 R1(A [PK], X) R2(X [PK], B, C, D) R3(X [PK], E) 但是

关系RA、B、C、D、E具有函数依赖关系A->B、C、D、E和BCD->E

A是一把钥匙。 但是,这个关系不在3NF中,因为BCD->E是一个冲突,其中E不是一个基本属性,BCD不是一个超级键。那么,如果我们分解关系,我们会得到吗


R1A,B,C,D和R2B,C,D,E?或者我在这个分解中不正确

您的分解是正确的,但是从技术上讲,您最好引入第三个关系,因为复合主键在DBA的观点中不是一个好的实践

R1(A [PK], X)
R2(X [PK], B, C, D)
R3(X [PK], E)

但是,如果a不是超级键,B不是主属性,那么函数依赖项(如a->B)就违反了3NF,这不是吗?如果A->B是一个非平凡的依赖项,则违反了BCNF。如果分解正确,则分解生成的关系既在3NF中,也在BCNF中。@CuriousPerson,A是一个超键,因为所有键都是超键。对更高NFs的规范化不会引入新列。这不是我的朋友,你在开玩笑吧?1NF->2NF是指添加两列或更多列,而不是一列。您显然不知道标准化、1NF或2NF是什么意思。@philipxy,请阅读我的书,了解NF,避免在以后的文章中进行任何个人论证