역정규화(denormalization)는 데이터베이스 설계에서 데이터 중복을 허용하여 성능을 개선하는 기법입니다. 정규화(normalization)는 데이터베이스 설계에서 데이터 중복과 무결성 문제를 방지하기 위해 데이터를 여러 테이블로 나누는 과정입니다. 역정규화는 이 과정의 반대로, 성능을 향상시키기 위해 일부 데이터를 의도적으로 중복시킵니다.
역정규화의 주요 목표는 데이터베이스 쿼리의 성능을 향상시키는 것입니다. 예를 들어, 조인이 많은 쿼리에서는 조인을 줄이기 위해 일부 데이터를 중복 저장할 수 있습니다. 이를 통해 읽기 성능을 높일 수 있지만, 쓰기 작업에서는 추가적인 관리가 필요할 수 있습니다.
역정규화의 장점:
- 성능 향상: 자주 조회되는 데이터에 대한 접근 속도를 높일 수 있습니다.
- 조인 감소: 데이터베이스 쿼리에서 조인 연산을 줄일 수 있습니다.
역정규화의 단점:
- 데이터 중복: 중복 데이터로 인해 저장 공간이 증가할 수 있습니다.
- 데이터 무결성 문제: 데이터 중복으로 인해 업데이트, 삭제 시 데이터 무결성을 유지하기 어렵습니다.
역정규화는 일반적으로 데이터베이스 성능을 분석한 후에, 특히 읽기 성능이 중요한 환경에서 고려됩니다. 반면, 데이터 무결성을 중요시하는 환경에서는 정규화를 우선시할 수 있습니다.