[데이터베이스] 이상현상과 정규화
Updated: Categories: CS이상현상와 정규화에 대해 알아보자
이상현상 (Anomaly)
- 테이블 내 데이터들이 불필요하게 중복되어 발생하는 데이터 불일치 현상 (데이터 무결성 유지)
- 종류
- 삽입 이상 : 불필요한 데이터까지 함께 삽입해야 하는 문제
- 삭제 이상 : 특정 컬럼 데이터를 삭제하고 싶어도 모든 행을 삭제해야하는 문제
- 갱신 이상 : 특정 컬럼 데이터를 수정하려할때 다른 행까지 모두 수정해야하는 문제
함수적 종속 (Functional Dependency)
부분 함수적 종속
- 어떤 컬럼이 PK가 아닌 다른 컬럼에 종속
- PK가 여러 컬럼으로 구성되어 있을 경우
이행적 함수 종속
- 컬럼 X, Y, Z가 한 테이블 내에서 X->Y, Y->Z 관계를 가져 X->Z 인 상황
정규화 (Normalization)
- 테이블 간 중복된 데이터를 허용하지 않는 것
- 무결성 유지
- DB 저장 효율 증가
- 정규화를 통해 이상현상을 해결할 수 있음
정규화 과정
- 제 1 정규형 : 도메인은 모두 원자값
- 제 2 정규형 : 부분 함수 종속 제거
- 제 3 정규형 : 이행적 함수 종속 제거
- BCNF : 결정자 중 후보키가 아닌 것들은 제거
- 제 4 정규형 : 다치 종속 제거
- 제 5 정규형 : 조인 종속성 제거