-1

I가3 정규형 혼란

R AB 차 키 및 F = {(F1)이다 (ABCDE) AB-> CDE; f2 : BD-> E}

내 교과서에서 제 3 정규형에 이르렀지만 온라인 도구를 통해 확인한 결과 f2 위반으로 2 차 양식에 도달했다고해서 혼란 스럽습니다.

맞습니까?

+0

관계형 데이터베이스를 (실제로는) 이해하고 있으며 정상적인 양식 (어느 정도까지는)을 이해하지만 질문을 제출 한 방식을 이해하지 못합니다. 좀 더 명확히 할 수 있니? 'R (ABCDE) '의 의미는 무엇입니까? 열이 ABCDE 인 '테이블 R'? 'F = {f1 : AB-> CDE; f2 : BD-> E}'를 ​​의미합니까? (두 개의 필드가있는 '테이블'F ... 그 ... 아니, 나는 포기합니다. 나는 추측도 할 수 없습니다.) 또한, "온라인 도구"를 사용하여이를 확인 했습니까? – Phrogz

+2

@Phrogz : R (ABCDE)의 주제에 변형을 사용하여 속성 A..E를 가진 관계 R을 의미하는 것이 일반적이며, F는 매우 명확하게 태그가 지정된 함수 종속성의 집합입니다. 의존성'f1'은'AB'가 기본 키임을 반복합니다. 의존성'f2'는 모든 종류의 문제를 야기합니다. –

+0

@JonathanLeffler 감사합니다. 'f2'는'E'의 값이'B'와'D'에 달려 있다고 말합니까? (그리고 그 반대도 마찬가지입니다.) – Phrogz

답변

1

Codd의 3NF 정의에는 테이블의 모든 비 (non-prime) 속성이 키에 비 transitive 의존적이라는 규정이 포함됩니다.

즉, E는 (AB)와 (BD)에 종속적이므로 C는 (AB)에만 종속되므로 3NF 위반입니다.

온라인 도구가 맞습니다.

이 3NF를 만들려면 ABCD와 BDE의 두 가지 관계로 나눠야합니다. 그러나 이는 참조 무결성 적용과 관련된 문제를 제기합니다.

+1

당신의 칭의가 이치에 맞지 않습니다. "E는 (AB)와 (BD) 모두에 의존하지만 C는 (AB)에만 종속적이므로"명확한 연결이 없음 "은 테이블의 모든 비 프라임 속성이 모든 키에 비재 정적 적으로 종속된다는 규정을 포함합니다 ". AB가 유일한 CK이고 E가 비소임이라는 것을 독자가 깨달을 것으로 기대하지만 AB에 대한 E의 전이 종속성에 대해서는 아무 말도하지 않으며 C는 부적합합니다. 그리고 관계에 하나 이상의 CK가있는 것처럼 모든 사용자에게 이탤릭체로 표시됩니다. 그러나 그렇지 않습니다. – philipxy