这个关系中的素数和非素数属性是什么?

2 normalization database-design

R(HIJKLMNO)

L -> MNO
HI -> JKLMNO
J -> KL
K -> H
Run Code Online (Sandbox Code Playgroud)

嗨是一把钥匙。

因此,H 是一个素属性。

但是,H也属于非关键部分。

这个关系中的素数和非素数属性是什么?

Ren*_*nzo 5

您的架构具有三个(候选)键:

\n\n
HI\nIJ\nIK\n
Run Code Online (Sandbox Code Playgroud)\n\n

虽然可以立即发现 thaHI是候选键,因为它决定了所有其他属性,但通过计算这些属性的闭包,您可以看到这也是正确IJIK

\n\n
IJ+ = IJ\nIJ+ = IJKL     (by adding the right part of J \xe2\x86\x92 KL)\nIJ+ = IJKLH    (by adding the rigth part of K \xe2\x86\x92 H)\nIJ+ = IJKLHMNO (by adding the right part of L \xe2\x86\x92 MNO)\n
Run Code Online (Sandbox Code Playgroud)\n\n

类似地对于IK

\n\n
IK+ = IK\nIK+ = IKH      (by adding the rigth part of K \xe2\x86\x92 H)\nIK+ = IKHJLMNO (by adding the right part of HI \xe2\x86\x92 JKLMNO)\n
Run Code Online (Sandbox Code Playgroud)\n\n

因此,关系的主要属性是:

\n\n
HIJK\n
Run Code Online (Sandbox Code Playgroud)\n\n

而非素数属性是:

\n\n
LMNO\n
Run Code Online (Sandbox Code Playgroud)\n\n

请注意,自 以来,没有其他候选键MN并且O仅出现在函数依赖关系的右侧,因此它们不能 \xe2\x80\x9ccontribute\xe2\x80\x9d 到任何键。L出现在函数依赖的左侧部分和右侧部分,但它由HIIJ和确定IK,并且不确定这些属性中的任何一个,因此它不能成为键的一部分。最后,您无法在不丢失关键属性的情况HI下从 中删除任何属性。IJIK

\n