7

저는 3NF/BCNF에있는 관계를 구별하는 방법에 대해 다양한 자료를 읽었습니다. 그리고 나는 지금까지 내 이해 ...BCNF가 아닌 3NF에서 관계 찾기

내가 예를 들어이 관계를 사용합니다 ...

R = {A, B, C, D, E}

F = {A -> B, B C - > E, E D -> A}

입니다했습니다.

먼저 관계의 키를 찾아야합니다. I used this video to help me do that.는 그리고 RBCNF, 우리는 F의 모든 기능 의존성의 왼쪽은 Keys 중 하나입니다 있는지 확인해야합니다 있는지 확인하려면 지금

Keys = {ACD, BCD, CDE}

을 얻었다. 첫 번째 FD가 A -> B이고 A이 키가 아니기 때문에이 경우가 아니라는 것을 즉시 알 수 있습니다. 그래서 BCNF에 없습니다. 이제

R3NF, 우리는 F의 모든 기능 의존성의 왼쪽은 F의 모든 기능 의존성의 오른쪽 인 Keys또는 중 하나입니다 있는지 확인해야합니다 있는지 확인하기 Keys 중 하나의 서브 세트. 모든 FD의 오른쪽을 보면 B, EA입니다. 이들은 각각 Key의 하위 집합이므로 은 3NF입니다.

그래서이 관계가 3NF에있는 드문가지 경우 (위키에 따라) 중 하나를 제외하고 BCNF에서하지입니다. 이 방법이 맞습니까? 믿을만한가요? 내가 놓친 게 있니?

+1

네가 모든 것을 올바르게했다. – laurids

+0

이 체크 아웃 할 수 있습니다. http://class2go.stanford.edu/db/Winter2013 – laurids

답변

1

먼저 수퍼 키, 후보 키 및 기본 속성을 알아야합니다.

그러나, 엄지 손가락의 규칙이 있습니다 : 여러 중복 후보 키가없는

3NF 테이블은 BCNF에 보장 입니다. 3NF 관계에 후보 키

  • 모든 원자 또는

가 아닌 원자 그러나 겹치지이다

  • 경우 환언

  • , 관계가 BCNF에 있음을 보증합니다. BCNF을 위반하지만 3NF는 다음과 같은 기능 종속성이 충족

    간단한 관계 :이 경우

    A,B -> C C -> B

    는 후보 키 (A,B)(A,C) 있습니다.

    • 모든 기능적 종속성의 오른쪽은 기본 속성 때문에
      그것은 3NF을 만족한다.

    을 (를) 위반 BCNF

    • C -> B하지만, 왼쪽이 퍼키되지 않기 때문에.
    2

    BCNF :

    X- Y가 주요 또는 여기
    비 프라임, X 해야 할 수 있습니다> Y 슈퍼 키

    3NF :

    Y는 다음 비 프라임
    , X
    슈퍼 키 다른

    X 하지 될 필요이어야합니다 X-> Y 슈퍼 키

    희망, 도움이

    +2

    이들은 명확하지 않거나 정확하지 않습니다. 일부 교과서 정의 또는 위키피디아를보십시오. – philipxy

    +0

    정의가 모호합니다. 예를 들어, BCNF의 경우 X는 수퍼 키 여야한다고 간단하게 말할 수 있습니다. 3NF의 정의는 정확하지만, 이것을 설명하는 가장 복잡한 방법입니다! – AHA