도슐랭스타

제2정규형과 BCNF 차이 본문

DB

제2정규형과 BCNF 차이

도도.__. 2025. 4. 7. 19:34
항목 제2정규형(2NF) BCNF
시작 조건 1NF 만족해야 함 3NF 만족해야 함
핵심 조건 부분 함수 종속 제거 모든 결정자가 후보 키여야 함
대상 복합 기본키일 때 주로 발생 후보 키가 여러 개일 때 주로 발생
포함 관계 BCNF ⊃ 2NF BCNF가 더 강력함

 

상황 제2정규형 BCNF
🧩 기본키가 두 조각인데 한 조각만으로 어떤 정보가 결정됨 → ❌ (해당 없음)
🧑 누가 결정자인지 봤더니 기본키 일부였어 → 문제! 후보 키가 아니었어 → 문제!

 

예시

학생ID 강의명 교수명
1001 DB 김교수
1001 OS 이교수
1002 DB 김교수
  • 기본키: {학생ID, 강의명}
  • 강의명 → 교수명 존재

제2정규형 위반인가?

  • 기본키는 {학생ID, 강의명} (복합)
  • 그런데 강의명 → 교수명은 기본키 일부에만 종속됨

제2정규형 위반!


BCNF 위반인가?

  • 강의명 → 교수명은 강의명이 후보 키가 아니므로
  • 후보키가 아닌 속성이 결정자 역할을 하고 있음

 → BCNF도 위반!


결론

  • 둘 다 위반될 수 있음
  • 하지만 2NF는 부분 종속에만 관심,
    BCNF는 결정자가 후보키인지 아닌지를 따짐

최종 요약

질문 2NF BCNF
복합 키가 아닌 단일 키인데도 문제가 될 수 있어? ❌ 아님 ✅ 가능
후보 키 아닌 속성이 결정자일 때 문제야? ❌ 아님 ✅ 문제!
기본키 일부만으로 다른 속성이 정해져도 돼? ❌ 안 돼! ⭕ 가능 (후보 키면)
엄격함 덜 엄격 더 엄격 😤

 

 

 

반응형

'DB' 카테고리의 다른 글

DB - 트랜잭션(transaction)  (0) 2024.06.07
DB - 프로시저(Procedure)  (0) 2024.05.28
집계 함수  (2) 2024.04.29
ORDER BY  (0) 2024.04.22
클러스터, 넌클러스터 인덱스  (0) 2024.04.15
Comments