[ DB ] 정규화

이승렬·2023년 8월 5일
0

[DataBase]

목록 보기
5/12
post-thumbnail

1. 정의

정규화(Normalization)은 데이터베이스 설계에서 중복을 최소화하고 데이터의 일관성과 무결성을 유지하기 위한 과정입니다.

  • 데이터베이스에서 정보를 효율적으로 저장하고 관리하기 위해 테이블을 재구성하는 프로세스입니다.
  • 이떄 테이블들 간의 관계를 잘 정의하여 데이터베이스의 유연성과 성능을 향상시킵니다.

2. 종류

  • 정규화는 관계형 데이터베이스 모델을 기반으로 합니다.
  • 일반적으로 제1정규형(1NF), 제2정규형(2NF), 제3정규형(3NF), BCNF(Boyce-Codd 정규형), 제4정규형(4NF), 제5정규형(5NF)으로 나뉩니다.
  • 각 정규형은 더 높은 단계의 정규화를 기반으로 하며, 데이터베이스 설계에서 문제를 해결하고 중복을 제거합니다.

3. 분류

제1정규형(1NF):
테이블의 각 열(속성)은 원자적인 값만 가지도록 분해합니다. 즉, 더 이상 쪼갤 수 없는 최소의 데이터 단위로 구성되어야 합니다.

제2정규형(2NF):
1NF를 만족하면서 부분 함수 종속성(Partial Functional Dependency)을 제거합니다. 테이블의 모든 속성이 기본 키에 완전히 종속되어야 합니다.

제3정규형(3NF):
2NF를 만족하면서 이행적 함수 종속성(Transitive Dependency)을 제거합니다. 즉, 테이블의 모든 비 기본 키 속성이 기본 키에 대해 이행적으로 종속되지 않아야 합니다.

BCNF(Boyce-Codd 정규형):
모든 결정자가 후보 키인 테이블입니다. 제3정규형에서 발생할 수 있는 조인 종속성(Joint Dependency) 문제를 제거합니다.

제4정규형(4NF):
다치 종속성(Multivalued Dependency)을 제거합니다. 하나의 테이블 내에서 다른 테이블의 다중값 종속성이 발생하지 않도록 합니다.

제5정규형(5NF):
조인 종속성을 제거하여 데이터베이스에서 다중 테이블 조인에 의해 발생하는 종속성 문제를 해결합니다.

4. 특징

  • 정규화를 통해 데이터베이스를 잘 설계하면 데이터 중복과 각종 이상현상(Anomalies)을 최소화하여 데이터 일관성과 무결성을 확보할 수 있습니다. - 그러나 정규화가 과도하게 적용될 경우 쿼리 복잡성과 성능 문제가 발생할 수 있으므로, 상황에 맞게 적절한 정규화 단계를 선택해야 합니다.
profile
Backend_Developer

0개의 댓글