[데이터베이스] 이상현상과 정규화

Updated: Categories:

이상현상와 정규화에 대해 알아보자

이상현상 (Anomaly)

  • 테이블 내 데이터들이 불필요하게 중복되어 발생하는 데이터 불일치 현상 (데이터 무결성 유지)
  • 종류
    • 삽입 이상 : 불필요한 데이터까지 함께 삽입해야 하는 문제
    • 삭제 이상 : 특정 컬럼 데이터를 삭제하고 싶어도 모든 행을 삭제해야하는 문제
    • 갱신 이상 : 특정 컬럼 데이터를 수정하려할때 다른 행까지 모두 수정해야하는 문제


함수적 종속 (Functional Dependency)

부분 함수적 종속

  • 어떤 컬럼이 PK가 아닌 다른 컬럼에 종속
  • PK가 여러 컬럼으로 구성되어 있을 경우

이행적 함수 종속

  • 컬럼 X, Y, Z가 한 테이블 내에서 X->Y, Y->Z 관계를 가져 X->Z 인 상황


정규화 (Normalization)

  • 테이블 간 중복된 데이터를 허용하지 않는 것
    • 무결성 유지
    • DB 저장 효율 증가
  • 정규화를 통해 이상현상을 해결할 수 있음

정규화 과정

  • 제 1 정규형 : 도메인은 모두 원자값
  • 제 2 정규형 : 부분 함수 종속 제거
  • 제 3 정규형 : 이행적 함수 종속 제거
  • BCNF : 결정자 중 후보키가 아닌 것들은 제거
  • 제 4 정규형 : 다치 종속 제거
  • 제 5 정규형 : 조인 종속성 제거