본문 바로가기

자격증/SQLD

SQLD 1과목 2-2장. 정규화와 성능

[ 목차 ]

1. 정규화를 통한 성능 향상 전략

2. 함수적 종속성에 근거한 정규화 수행

 

1. 정규화를 통한 성능 향상 전략

1) 데이터에 대한 중복성을 제거하고 데이터가 관심사별로 처리되는 경우가 많기 때문에 성능이 향상되는 특징을 지님

2) 계속된 엔터티의 발생으로 SQL문장의 조인 다량 발생과 성능저하는 반정규화를 적용하여 해결

3) 조회 성능과 입력/수정/삭제 성능은 데이터 모델 구성 방식에 따라 Trade-Off되는 경우가 많음

4) 정규화를 수행하는 것은 데이터를 결정하는 결정자에 의해 함수적 종속을 가지고 있는 일반속성을 의존자로 하여 입

   력/수정/삭제 이상을 제거하는것

5) 데이터의 중복속성을 제거하고 결정자 의해 동일한 의미의 일반속성이 하나의 테이블로 집약되므로 한 테이블의 데

   이터 용량이 최소화되는 효과 발생, 따라서 정규화된 테이블은 데이터 처리 속도가 빨라질수도, 느려질수도 있음

6) 정규화는 입력/수정/삭제의 성능 향상, 반정규화는 조회의 성능 향상

7) 정규화를 해야 성능향상되는 경우가 많기 때문에 반정규화만이 조회 성능을 향상시킨다는 고정관념은 탈피해야 함

8) PK Unique Index를 사용하면 정규화하여 조인이 발생하더라도 성능 저하는 미미 

9) 한 테이블에 인덱스가 많아지면 조회 성능은 향상하나 데이터 입력/수정/삭제 성능이 저하되기 때문에 7~8개 유지

   고 정규화를 통해 정리

 

2. 함수적 종속성에 근거한 정규화 수행

1) 함수적 종속성 : 데이터들이 어떤 기준값에 종속되는 현상을 지칭하는 것이며, 기준값은 결정자, 종속값은 종속자

2) 데이터들은 대부분 함수 종속성을 지니고 있음

3) 정규화의 궁극적 목적은 반복적인 데이터를 분리하고 각 데이터가 종속된 테이블에 적절하게 배치되도록 하는것이므

   로 이 함수의 종속성을 이용하여 정규화 작업이나 각 오브젝트에 속성을 배치하는 작업에 이용

4) 데이터는 속성간의 함수종속성에 근거하여 정규화되어야하며, 정규화는 선택사항이 아닌 필수사항