티스토리 뷰

* 반정규화?

  반정규화는 비정규화, 역정규화라고도 한다. 여기서 반은 반대하다의 의미이다.

  데이터 무결성이 깨질 위험을 무릅쓰고 데이터를 중복하여 반정규화를 적용하는 것은 데이터를 조회할 때 디스크 IO량이 많아서 성능이 저하된다든지, 경로가 너무 멀어 조인으로 인한 성능 저하가 예상된다든지, 컬럼을 계산하여 읽을 때 성능이 저하될 것이 예상되는 경우에 성능 저하를 막기 위해서이다.


기본적으로 정규화는 입력/수정/삭제 성능을 향상시킬 뿐만 아니라 조회 성능도 향상시키는 역할을 한다. 그러나 정규화를 수행하면 엔티티타입의 갯수가 증가하고 관계가 많아져 여러 개의 조인이 걸려야마 데이터를 가져오는 경우가 있다. 이럴 때 비즈니스적으로 조회 처리 성능이 중요하다고 판단되면 부분적으로 반정규화를 고려하게 된다. 또한 정규화의 함수적 종속관계는 위반하지 않지만 데이터의 중복성을 증가시켜야만 데이터 조회의 성능이 향상되는 경우가 있다. 이럴 때 반정규화를 통해서 성능을 향상시킬 수 있다.



- 어떻게 적용하는가?


반정규화란 시스템의 성능 향상과 개발 및 운영의 단순화를 위해 정규화된 엔티티타입, 속성, 관계에 대해 중복, 통합, 분리 등을 수행하는 데이터 모델링 기법을 의미한다.

좁은 의미의 반정규화는 데이터를 중복하여 성능을 향상시키는 기법을 의미하며,

더 넓은 의미의 반정규화는 성능을 향상시키기 위해 정규화된 데이터 모델에서 중복, 통합, 분리 등을 수행하는 모든 과정을 의미한다.


반정규화를 적용할 때는 데이터 무결성이 깨질 가능성이 많기 때문에 반드시 데이터 무결성을 보장할 수 있는 방법을 고려한 이후에 적용해야한다.


정규화와 반정규화 사이에는 Trade-Off 관계가 성립되는 경우가 많다. 정규화만을 강조하다 보면 성능 이슈가 발생할 수 있고, 반정규화를 과도하게 적용하다 보면 데이터 무결성이 깨질 위험이 증가한다. 따라서 반정규화를 적용할 때는 데이터 무결성의 중요함을 인식하고 데이터 무결성이 충분히 유지될 수 있도록 프로세스 처리시의 안정성을 먼저 확인해야 한다.


- 반정규화 절차

1. 반정규화 대상 조사 : 범위 처리 빈도수 조사, 대량의 범위 처리 조사, 통계성 프로세스 조사, 테이블 조인 개수

2. 다른 방법 유도 검토 : 뷰 테이블 클러스터링 조정, 인덱스 조정, 응용 애플리케이션

3. 반정규화 적용 : 테이블 반정규화, 속성의 반정규화, 관계의 반정규화




공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함