DB

[정규화] 3정규형 분해

타우루스 2026. 2. 11. 20:50

릴레이션 R(A, B, C, D)에 대한 함수 종속집합이 아래와 같을 때 3정규형으로 분해

AB→D, B→CD, A→B

 

제3정규형(3NF)으로 분해하기 위해서는 먼저 후보키(Candidate Key)를 찾고, 이행적 함수 종속(Transitive Dependency)을 제거해야 합니다.

 

1. 주어진 함수 종속성(FD) 분석

  • AB → D
  • B → CD (즉, B → C 이고 B → D)
  • A → B

2. 후보키(Candidate Key) 도출

  • A가 주어지면 A → B에 의해 B를 알 수 있습니다.
  • B를 알면 B → CD에 의해 CD를 알 수 있습니다.
  • 따라서 A 하나만으로 모든 속성(A, B, C, D)을 결정할 수 있으므로, A가 후보키가 됩니다. (A → B → C, D)

3. 제3정규형(3NF) 위반 확인

  • 3NF의 조건: 결정자(화살표 왼쪽)가 후보키가 아니면서 일반 속성을 결정하는 경우(이행적 함수 종속)를 없애야 합니다.
  • 여기서 B → C, D 관계를 봅니다.
    • B는 후보키(A)가 아닙니다.
    • 하지만 BC, D를 결정하고 있습니다. (이행적 종속: A → B → C,D)
    • 따라서 이 부분이 3NF를 위반하고 있으므로 분해해야 합니다.

4. 3NF로 분해 (무손실 분해)

  • 3NF 위반의 원인인 B → C,D를 별도의 릴레이션으로 분리합니다.
    • R2(B, C, D)
  • 원래 릴레이션에서 C, D를 제거하고, 결정자 B만 남겨 키인 A와 연결합니다.
    • R1(A, B)

따라서 올바르게 분해된 결과는 R1(A, B), R2(B, C, D)가 됩니다.


이때 AB → DB D에 의해 논리적으로 포함(흡수)되어 해결된 것입니다.

상세한 논리 과정은 다음과 같습니다.

1. 함수 종속성의 포함 관계 (암스트롱의 공리)

문제에서 주어진 조건들을 다시 살펴보겠습니다.

  • (조건 2) B CD ▶ 이것은 B D 와 B C로 쪼개질 수 있습니다.

여기서 B D 라는 조건이 이미 존재한다는 점이 핵심입니다.

  • B 하나만으로도 D를 결정할 수 있다면, B 옆에 A가 붙은 AB 상황에서도 당연히 D를 결정할 수 있습니다.
  • 이것을 데이터베이스 이론(암스트롱의 공리)에서는 첨가 규칙(Augmentation Rule)이라고 합니다.
    • 만약 B D 이면, XB D 도 성립한다. (여기서 XA)

2. 정규화 과정에서의 처리

정규화를 수행할 때는 "최소한의 결정자"를 기준으로 분해합니다.

  • D를 결정하는 데 있어서 AB가 모두 필요한가? (AB D)
  • 아니면 B만 있어도 되는가? (B D)

문제의 조건(B CD)에 의해 B만 있어도 D가 결정되므로, AB D라는 조건은 B D에 의해 커버(Cover)되는 덜 강력한 조건이 됩니다. 즉, 중복된 정보로 간주합니다.

3. 결론

따라서 정규화 결과인 R2(B, C, D) 릴레이션 안에 B D 관계가 이미 살아있으므로, AB D의 제약조건도 논리적으로 완벽하게 만족(보존)하고 있는 상태가 됩니다.

 

따라서 별도로 AB D를 위한 릴레이션을 만들 필요가 없습니다.