티스토리 뷰
1. 정규화를 통한 성능 향상 전략
- 정규화란? 다양한 유형의 검사를 통해 데이터 모델을 좀 더 구조화하고 개선시켜 나가는 절차에 관련된 이론이다. 데이터 모델링을 하면서 정규화를 하는 것은 기본적으로 데이터에 대한 중복성을 제거하여 주고 데이터가 관심사별로 처리되는 경우가 많기 때문에 성능이 향상되는 특징을 가지고 있다.
- 데이터처리의 성능이 무엇인지 정확히 구분하여 인식할 필요가 있다. 데이터베이스에서 데이터를 처리할 때 성능이라고 하면 조회 성능과 입력/수정/삭제 성능의 두 부류로 구분된다. 이 두 가지 성능이 모두 우수하면 좋겠지만 데이터 모델을 구성하는 방식에 따라 두 성능이 Trade-Off 되어 나타나는 경우가 많이 있다.
- 정규화를 수행한다는 것은 데이터를 결정하는 결정자에 의해 함수적 종속을 가지고 있는 일반속성을 의존자로 하여 입력/수정/삭제 이상을 제거하는 것이다. 데이터의 중복속성을 제거하고 결정자에 의해 동일한 의미의 일반속성이 하나의 테이블로 집약되므로 한 테이블의 데이터 용량이 최소화되는 효과가 있다. 따라서 정규화된 테이블은 데이터를 처리할 때 속도가 빨라질 수도 있고 느려질 수도 있는 특성이 있다.
2. 반정규화된 테이블의 성능저하 사례1
- 2차 정규화를 적용한 테이블에 대해서 조인을 하더라도 PK Unique Index를 이용하면 조인 성능 저하는 미미하게 발생된다.
3. 반정규화된 테이블의 성능저하 사례2
- 대량의 데이터에서 조인 조건이 되는 대상을 찾기 위해 인라인뷰를 사용하기 때문에 성능이 저하된다.
- 이를 정규화하려면 복합식별자 중에서 일반속성이 주식별자 속성 중 일부에만 종속관계를 가지고 있으므로 2차 정규화의 대상이 된다.
4. 반정규화된 테이블의 성능저하 사례3
- 동일한 속성 형식을 두 개 이상의 속성으로 나열하여 반정규화한 경우
- 계층형 데이터베이스를 많이 사용했던 과거 데이터 모델링의 습관이 남아서인지 데이터베이스에도 동일한 속성을 한 테이블에 속성1, 속성2, 속성3 데이터 모델링을 하는 경우가 많이 있다.
'자격증 > SQLD' 카테고리의 다른 글
SQLD - 데이터 모델과 성능 [대량 데이터에 따른 성능] (0) | 2017.07.31 |
---|---|
SQLD - 데이터 모델과 성능 [반정규화와 성능] (0) | 2017.07.31 |
SQLD - 데이터 모델과 성능 [성능 데이터 모델링의 개요] (0) | 2017.07.28 |
SQLD - 데이터 모델링의 이해 [식별자] (0) | 2017.07.27 |
SQLD - 데이터 모델링의 이해 [관계] (0) | 2017.07.27 |