DB

정규화 반정규화

simba 2024. 9. 24. 11:33

정규화(Normalization)

정규화는 데이터베이스의 중복을 줄이고, 데이터의 일관성을 높이기 위해 하는 과정임. 주로 이런 점들이 중요함:

  1. 중복 제거함: 같은 데이터가 여러 곳에 저장되는 걸 방지함.
  2. 무결성 유지함: 데이터 추가, 수정, 삭제할 때 일관성을 유지할 수 있게 함.
  3. 쿼리 효율성 높임: 데이터 구조가 명확해지면 쿼리 성능도 향상됨.

정규화는 여러 단계로 나눠져 있는데, 1NF, 2NF, 3NF 같은 정규형이 있음.

반정규화(Denormalization)

반정규화는 성능을 높이기 위해 일부러 데이터 중복을 허용하고, 정규화된 데이터를 통합하는 과정임. 주요 이유는 이러함:

  1. 성능 향상함: JOIN이 많이 필요할 때, 데이터를 미리 결합해서 쿼리 속도를 높임.
  2. 복잡성 감소함: 데이터 모델이 단순해져서 쿼리가 더 간단해짐.

반정규화는 주로 읽기 작업이 많은 경우에 유용하지만, 쓰기 작업에서는 중복된 데이터 업데이트가 필요하니 조심해야 함.

결론

정규화랑 반정규화는 서로 다른 목표가 있음. 정규화는 무결성과 중복 제거에 중점을 두고, 반정규화는 성능 최적화에 중점을 둠. 그래서 데이터베이스 설계할 때는 이 두 가지를 잘 고려해야 함.