[sql] 정규화와 데이터베이스 설계
데이터베이스 설계 과정에서 정규화는 데이터 중복을 제거하고 데이터 일관성을 유지하기 위해 중요한 단계입니다. 데이터베이스 정규화는 테이블 간의 의존성을 줄여 데이터의 중복을 최소화하여 데이터 무결성을 유지하는 과정입니다.
정규화의 목적
정규화의 주요 목적은 데이터 이상 현상을 방지하고 데이터 구조를 단순화하여 데이터베이스의 성능을 향상시키는 것입니다. 또한, 데이터의 무결성과 일관성을 유지하면서 데이터베이스를 보다 효과적으로 관리할 수 있도록 돕습니다.
제 1 정규형 (1NF)
테이블 내의 모든 속성이 원자적(Atomic)이어야 하며, 중복 튜플을 허용하지 않습니다.
제 2 정규형 (2NF)
부분 함수 종속을 제거하여 기본 키가 아닌 속성들이 기본 키 전체에 의존해야 합니다.
제 3 정규형 (3NF)
이행적 함수 종속을 없애고, 모든 속성이 기본키에만 종속되어야 합니다.
BCNF (Boyce-Codd 정규형)
모든 결정자가 후보키여야 합니다.
정규화 단계
데이터를 제 1 정규형으로 변환한 후, 제 2 정규형, 제 3 정규형, BCNF의 순서로 진행하여 데이터의 중복을 제거하고 데이터베이스를 설계합니다.
SQL을 사용하여 데이터베이스를 설계할 때는 이러한 정규화 특성을 고려하여 테이블을 설계해야 합니다. 정규화된 데이터베이스 설계는 데이터 무결성을 유지하고 데이터베이스의 성능을 최적화하는 데 도움이 됩니다.