이상현상(Anormaly)
RDBMS에서 정규화는 데이터베이스의 테이블 구조를 조직화하고 최적화하는 과정. 정규화의 주 목적은 데이터 중복을 최소화하고, 데이터 무결성을 향상시키며, 데이터의 일관성을 유지하는 것. 정규화는 여러 단계로 이루어지며, 각 단계를 정규형이라고 부른다.
: 각 행에 동일한 수의 셀이 있어야 하고, 모든 셀은 간단한 값을 가져야 합니다. 즉, 속성의 원자성이 보장되어야 합니다.
: 제1정규형을 만족하면서, 테이블의 모든 속성이 기본 키(Primary Key)에 완전히 종속적이어야 합니다. 부분종속성을 제거해야 합니다.
: 제2정규형을 만족하면서, 비키(Non-Key) 속성 간의 이행적 종속성(Transitive Dependency)이 없어야 합니다.
: 제3정규형을 만족하면서, 기본 키가 아닌 모든 속성에 대해 이행적 종속성이 없어야 합니다.
: BCNF를 만족하면서, 다치 종속(Multi-valued Dependency)이 없어야 합니다.
: 제4정규형을 만족하면서, 조인 종속성(Join Dependency)을 제거해야 합니다.
정규화를 올바르게 적용하면 데이터베이스 성능을 향상시키고, 데이터의 변경과 삭제 시 발생할 수 있는 이상(Anomaly) 현상을 줄일 수 있다. 그러나 과도한 정규화는 조회 성능에 영향을 줄 수 있으므로, 성능과 무결성 사이의 균형을 고려해 최적의 정규형을 선택하는 것이 중요하다.