반정규화 3

챕터02. 데이터 모델과 성능 - 2.3 반정규화와 성능

반정규화의 정의 정규화된 엔터티, 속성, 관계에 대해 시스템의 성능향상과 개발과 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링의 기법을 의미한다. 협의의 반정규화는 데이터를 중복하여 성능을 향상시키기 위한 기법이라고 정의할 수 있고 좀 더 넓은 의미의 반정규화는 성능을 향상시키기 위해 정규화된 데이터 모델에서 중복, 통합, 분리 등을 수행하는 모든 과정을 의미한다. 데이터 무결성이 깨질 수 있는 위험을 무릅쓰고 데이터를 중복하여 반정규화를 적용하는 이유는 데이터를 조회할 때 디스크 I/O량이 많아서 성능이 저하되거나 경로가 너무 멀어 조인으로 인한 성능저하가 예상되거나, 칼럼을 계산하여 읽을 때 성능이 저하될 것이 예상되는 경우 반정규화를 수행하게 된다. 반정규화 절차 반정규화도 ..

챕터02. 데이터 모델과 성능 - 2.2 정규화와 성능

정규화를 통한 성능 향상 전략 정규화를 수행한다는 것은 데이터를 결정하는 결정자에 의해 함수적 종속을 가지고 있는 일반 속성을 의존자로 하여 입력/수정/삭제 이상현상을 제거하는 것이다. 데이터의 중복 속성을 제거하고 결정자에 의해 동일한 의미의 일반 속성이 하나의 테이블로 집약되므로 한 테이블의 데이터 용량이 최소화되는 효과가 있다. 정규화된 테이블은 데이터를 처리할 때 속도가 빨라질 수도 있고 느려질 수도 있는 특성이 있다. - 정규화된 데이터 모델은 조회 시에는 처리 조건에 따라 성능이 향상 혹은 저하된다. - 정규화된 데이터 모델은 입력/수정/삭제 시 무조건 성능이 향상된다. 정규화 용어 용어 설명 정규화 (Normalization) - 함수적 종속성 등과 같은 이론에 근거하여 관계형 데이터베이스 ..

챕터02. 데이터 모델과 성능 - 2.1 성능 데이터 모델링의 개요

성능 데이터 모델링의 정의 성능 데이터 모델링이란 데이터베이스 성능향상을 목적으로 설계단계의 모델링 때부터 정규화, 반정규화, 테이블통합, 테이블분할, 조인구조, PK, FK 등 여러 가지 성능과 관련된 사항이 데이터 모델링에 반영될 수 있도록 하는 것으로 정의할 수 있다. 성능 데이터 모델링 수행시점 성능 향상을 위한 비용은 프로젝트 수행 중에 있어서 사전에 할수록 비용이 들지 않는다. 분석 / 설계 단계에서 데이터 모델에 성능을 고려한 데이터 모델링을 수행할 경우 성능 저하에 따른 재 업무 (Rework) 비용을 최소화 할 수 있는 기회를 가지게 된다. 분석 / 설계 단계에서 데이터베이스 처리 성능을 향상시킬 수 있는 방법을 주도면밀하게 고려해야 한다. 성능 데이터 모델링 고려사항 데이터 모델링을 할..