2 normalization database-design
R(HIJKLMNO)
L -> MNO
HI -> JKLMNO
J -> KL
K -> H
Run Code Online (Sandbox Code Playgroud)
嗨是一把钥匙。
因此,H 是一个素属性。
但是,H也属于非关键部分。
这个关系中的素数和非素数属性是什么?
您的架构具有三个(候选)键:
\n\nHI\nIJ\nIK\n
Run Code Online (Sandbox Code Playgroud)\n\n虽然可以立即发现 thaHI
是候选键,因为它决定了所有其他属性,但通过计算这些属性的闭包,您可以看到这也是正确IJ
的IK
:
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
:
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\nHIJK\n
Run Code Online (Sandbox Code Playgroud)\n\n而非素数属性是:
\n\nLMNO\n
Run Code Online (Sandbox Code Playgroud)\n\n请注意,自 以来,没有其他候选键M
,N
并且O
仅出现在函数依赖关系的右侧,因此它们不能 \xe2\x80\x9ccontribute\xe2\x80\x9d 到任何键。L
出现在函数依赖的左侧部分和右侧部分,但它由HI
、IJ
和确定IK
,并且不确定这些属性中的任何一个,因此它不能成为键的一部分。最后,您无法在不丢失关键属性的情况HI
下从 中删除任何属性。IJ
IK
归档时间: |
|
查看次数: |
7131 次 |
最近记录: |