25.01.06 TIL 데이터 정규화

신성훈·2025년 1월 6일

TIL

목록 보기
113/162

1. 데이터 정규화란?

데이터 정규화는 데이터베이스에서 중복 데이터를 줄이고, 데이터 무결성을 보장하기 위해 데이터를 체계적으로 설계하는 과정입니다.
이는 데이터 이상현상(삽입, 갱신, 삭제 이상)을 방지하고, 데이터 구조를 간단하고 효율적으로 만듭니다.


2. 정규화의 단계

1NF: 제1정규형

  • 데이터를 원자값(Atomic Value)으로 분리합니다.
  • 각 컬럼에 하나의 값만 포함되도록 테이블을 설계합니다.

2NF: 제2정규형

  • 제1정규형을 만족하고, 부분 함수 종속을 제거합니다.
  • 기본 키의 일부분에만 종속된 속성을 별도의 테이블로 분리합니다.

3NF: 제3정규형

  • 제2정규형을 만족하고, 이행적 함수 종속을 제거합니다.
  • 기본 키 이외의 속성들은 오직 기본 키에만 종속되도록 설계합니다.

3. 정규화의 장단점

장점

  1. 데이터 중복 감소: 저장 공간을 효율적으로 사용
  2. 데이터 무결성 보장: 일관성을 유지하고 오류를 방지
  3. 변경 용이성: 데이터 수정이 더 간단해짐

단점

  1. 복잡성 증가: 테이블이 많아져 관리가 어려울 수 있음
  2. 성능 저하 가능성: 자주 사용하는 데이터가 분리되어 조회 속도가 느려질 수 있음

4. 정규화를 고려할 때의 핵심

  • 데이터 무결성이 중요한 경우 정규화를 적극 활용
  • 하지만, 읽기 속도가 중요한 시스템에서는 비정규화(De-normalization)를 고려해 성능 최적화를 진행할 수 있습니다.

5. 마무리

정규화는 데이터베이스 설계의 기초로서 매우 중요한 과정이라는 것을 깨달았습니다. 프로젝트 진행 중, 데이터 중복으로 인해 발생했던 문제를 정규화를 통해 해결했으며, 특히 데이터 구조를 효율적으로 관리하는 데 큰 도움이 되었습니다.
하지만 성능이 중요한 상황에서는 비정규화와 조합해 사용하는 것도 필요하다는 것을 배웠습니다.

profile
조급해하지 말고, 흐름을 만들고, 기록하면서 쌓아가자.

0개의 댓글