study-log

⭐️ 정규화

데이터베이스 설계 시 데이터의 중복을 줄이고,
종속 관계를 명확히 하여 무결성을 유지하기 위해 수행하는 과정입니다. 과도한 조인과 중복 데이터 최소화 사이에서 적정 수준을 선택해서 진행해야 한다.


⭐️ 정규화를 하는 이유?

  1. 중복 데이터 제거
    → 저장공간 낭비 방지, 데이터 관리 용이

  2. 데이터 무결성 유지
    → 하나의 데이터만 수정해도 일관성이 유지됨

  3. 갱신·삭제·삽입 이상 방지 (Anomaly 방지)
    → 예외 상황에서의 데이터 오류를 줄임 (데이터 갱신/삭제/삽입 이상 방지 )


⭐️ 정규화 단점

  1. 많은 join 으로 인한 조회 성능 저하
    • 일부 중복을 허용하는 반정규화
    • 조회 전용 DB구성 – 조회용 database를 두는 database per service + CQRS 패턴 적용으로 개선 가능

⭐️ 정규화 단계

✅ 제 1정규형

✅ 제 2정규형

✅ 제 3정규형

✅ BCNF

✍️ 개인 회고

정규화에 대해 설명할 일이 있었는데,
개념은 러프하게 알고 있었지만 명확하고 간결하게 전달하지 못해 아쉬웠다.
이번 기회에 다시 정리하면서 개념을 더 명확히 잡을 수 있었다.