관계를 BCNF 형식으로 정규화하는 방법을 이해하려고합니다. BCNF의 정의가 무엇인지 알고 있으며 정상화하기 위해서는 D -> X
을 제거해야하며 D
은 주요 후보가 아닙니다. (D,X)
및 (S,X)
의 새 테이블을 만듭니다.표를 BCNF 형식으로 정규화하는 방법
Difference between 3NF and BCNF하지만이 직면하고있는 문제는 X가 슈퍼의 일부 때 알고리즘을 사용하는 방법입니다 :
나는이 스레드를 읽고 키. 내가 설명 할 것입니다 :R = (a,b,c,d,e)
FD = { {a,b}->{c} , {a,b}->{d} , {a,b}->{e} , {d}->{b} }
물론, 유일한 슈퍼 키가 (a,b)
입니다 :
d
은 핵심 후보가 아닙니다.
BCNF를 위반하지만, 수퍼 키의 일부이므로 테이블에서 b
을 가져갈 수 없습니다.
내 질문은 :이 경우 어떻게하면이 관계를 BCNF 형식으로 정규화 할 수 있습니까?
F가 함수 종속성을 나타내는 것으로 가정되지만 FD가 실제로 무엇인지 알 수는 없습니다. 표기법이 모호합니다. 어쩌면 당신은'{a, b} ⟶c; {a, b} ⟶d; {a, b} ⟶e; d⟶b'? 여기서 나는 싱글 톤 세트 주위에'{}'를 사용하지 않았다. FD 세트를 명확히하십시오. –
예,'f'는'FD'를 말합니다. 내가 편집 했어, 고마워. 표기법에 대해서, 나는 지금까지 내가 여러 곳에서 보았던 것을 따른다. –
예, 당신이 작성한 FD를 언급합니다. 편집도. –