DB 정규화(Normalization)
- 관계형 데이터베이스의 설계에서 중복을 최소화하게 데이터를 구조화하는 프로세스
- 목적
- 불필요한 데이터를 제거, 데이터의 중복을 최소화 하기 위함
- 데이터베이스 구조 확장 시 재디자인을 최소화
- 다양한 관점에서의 query를 지원하기 위함 : JOIN을 통해서 원하는 정보를 가져옴
- 무결성 제약조선의 시행을 간단하게 하기 위함 : 데이터의 정확성, 일관성, 유효성 유지
- 각종 이상 현상(Anomaly)을 방지하기 위해서, 테이블의 구성을 논리적이고 직관적으로 한다.
DB 반정규화(Denormalization)
- 복잡한 쿼리 속도를 높이고 성능을 향상시키기 위해 테이블에 중복 데이터를 추가하는 프로세스
- 사용 대상
- 자주 사용되는 테이블에 액세스하는 프로세스의 수가 가장 많은 경우
- 항상 일정한 범위만을 조회하는 경우
- 테이블에 대량 데이터가 있고 대량의 범위를 자주 처리하는 경우
- 성능 상 이슈가 있을 경우
- 테이블에 지나치게 조인을 많이 사용하게 되어 데이터를 조회하는 것이 기술적으로 어려울 경우
- 주의점
- 반정규화를 과도하게 적용하다 보면 데이터의 무결성이 깨질 수 있다
- 입력, 수정, 삭제의 질의문에 대한 응답 시간이 늦어질 수 있다.
참조