알고리즘/SQL 문법 정리

1,2,3,BCNF 정규화

경우42 2025. 5. 28. 17:34
반응형

1차 정규화 (1NF)

조건: 모든 속성값이 원자값(atomic value)이어야 함

  • 함수 종속성 조건은 없음
  • 단순히 각 셀에 하나의 값만 존재해야 함
  • 반복 그룹이나 다중값 속성 제거

2차 정규화 (2NF)

조건: 1NF + 부분 함수 종속성 제거

  • X→Y에서: X가 후보키의 일부분이고, Y가 비프라임 속성일 때
  • 조건: 이런 부분 함수 종속성이 존재하면 안됨
  • 즉, 비프라임 속성은 후보키 전체에만 함수적으로 종속되어야 함

예시:

  • 후보키: (학번, 과목코드)
  • 잘못된 경우: 학번 → 학생명 (부분 함수 종속성)
  • 해결: 학생 테이블과 수강 테이블로 분리

3차 정규화 (3NF)

조건: 2NF + 이행적 함수 종속성 제거

  • X→Y에서: 다음 중 하나를 만족해야 함
    1. X가 슈퍼키이거나
    2. Y가 프라임 속성이어야 함
  • 비프라임 속성들 간의 함수 종속성 제거

예시:

  • 잘못된 경우: 학번 → 학과코드 → 학과명 (이행적 종속성)
  • 해결: 학과 정보를 별도 테이블로 분리

BCNF (Boyce-Codd Normal Form)

조건: 3NF보다 더 엄격한 조건

  • X→Y에서: X가 반드시 슈퍼키여야 함
  • Y가 프라임 속성이어도 X가 슈퍼키가 아니면 안됨
  • 모든 함수 종속성의 좌변이 슈퍼키여야 함

3NF vs BCNF 차이점:

  • 3NF: X가 슈퍼키 OR Y가 프라임 속성
  • BCNF: X가 슈퍼키 (조건이 더 엄격)

예시:

  • 후보키: (학생번호, 과목), (학생번호, 교수)
  • 함수 종속성: 교수 → 과목
  • 3NF는 만족하지만 BCNF는 위반 (교수가 슈퍼키가 아님)
반응형