테이블 반정규화. 컬럼 반정규화. 관계 반정규화.
반정규화란?
데이터의 조회 성능을 향상시키기 위해 데이터의 중복을 허용하거나 데이터를 그룹핑하는 과정
반정규화를 할 경우,
조회성능은 향상될 수 있다.
입력, 수정, 삭제 성능 저하 가능성
데이터 정합성 이슈가 발생할 수 있다.
반정규화 과정은 정규화가 끝난 후 진행되며, 일정한 룰 존재
1. 테이블 반정규화
테이블 병합
업무 프로세스상 JOIN이 필요한 경우가 많아 테이블을 통합하는 것이 성능 측면에서 유리할 경우 고려
1:1 관계 테이블 병합
1:M 관계 테이블 병합
1쪽에 해당하는 엔터티의 속성 개수가 많으면 병합했을 경우 중복 데이터가 많아지므로 테이블 병합에 부적절
슈퍼-서브 타입 테이블 병합
테이블 분할
테이블 수직 분할
엔터티의 일부 속성을 별도의 엔터티로 분할
1:1관계 성립
자주 사용하는 속성이 아니거나 대부분의 인스턴스가 해당 속성값을 NULL로 갖고 있을 때 고려
테이블 수평 분할
엔터티의 인스턴스를 특정 기준으로 별도의 엔터티로 분할 (파티셔닝)
예) 주문 엔터티를 연도별로 분할
테이블 추가
중복 테이블 추가
데이터의 중복을 감안하더라도 성능상 반드시 필요하다고 판단되는 경우 별도의 엔터티 추가
통계 테이블 추가
예) 주문데이터를 이용해 월매출 테이블에 통계치를 미리 계산하여 저장