반응형
1. 정규화
- 기본적으로 데이터에 대한 중복성을 제거하여 주고 데이터가 관심사별로 처리되는 경우가 많기 때문에 성능이 향상되는 특징을 가지고 있다.
- 정규화 : 데이터 분해 과정, 이상현상 제거
- 정규형 : 정규화로 도출된 데이터 모델이 갖춰야 할 특성
- 함수적 종속성 : 결정자와 종속자의 관계, 결정자의 값으로 종속자의 값을 알 수 있음
- 다치 종속 : 여러 칼럼이 동일한 결정자의 종속자 일 때
2. 정규화 이론
- 정규화 이론
- 1차, 2차, 3차, 보이스코드 정규화는 함수적 종속성에 근거
- 4차 정규화는 다치 종속을 제거
- 5차 정규화는 조인에 의한 이상현상을 제거하여 정규화를 수행함
- 1차 정규화
- 속성의 원자성 확보
- 다중값 속성을 분리함
- 2차 정규화
2차 정규화 - 부분 함수 종속성 제거
- 일부 기본키에만 종속된 속성을 분리함
- 기본키가 하나의 칼럼일 때 생략 가능
- 3차 정규화
3차 정규화 - 이행 함수 종속성 제거
- 서로 종속관계가 있는 일반 속성을 분리함
- 주식별자와 관련성이 가장 낮음
- 보이스코드 정규화(BCNF; Boyce-Codd Normal Form)
- 후보키가 기본키 속성 중 일부에 함수적 종속일 때 다수의 주식별자를 분리함
- 4차 정규화, 5차 정규화
- 다치 종속 분리
- 결합 종속 분리
3. 정규화와 성능
- 정규화는 입출력 데이터의 양을 줄여 성능을 향상시킴
- 정규화로 인한 성능 향상
- 입력/수정/삭제 시 성능은 항상 향상됨
- 유연성 증가: High Cohesion & Loose Coupling 원칙에 충실해짐
- 재활용 가능성 증가: 개념이 세분화됨
- 데이터 중복 최소화
- 정규화로 인한 성능 저하
- 조회 시 처리 조건에 따라 성능 저하가 발생할 수도 있음
- 데이터 조회 시 조인을 유발하여 CPU와 메모리를 많이 사용하게 됨
- 반정규화로 해결 가능
- 조인이 발생하더라도 인덱스를 사용하여 조인 연산을 수행하면 성능 상 단점이 거의 없고, 정규화를 통해 필요한 인덱스의 수를 줄일 수 있음
- 정규화를 통해 소량의 테이블이 생성된다면 성능 상 유리할 수 있음
- 데이터 조회 시 조인을 유발하여 CPU와 메모리를 많이 사용하게 됨
반응형
'SQLD > 1과목 데이터 모델링의 이해' 카테고리의 다른 글
[SQLD]Ⅰ- 2장 데이터 모델링과 성능 - 4절 대량 데이터에 따른 성능 (0) | 2022.03.24 |
---|---|
[SQLD]Ⅰ- 2장 데이터 모델링과 성능 - 3절 반정규화와 성능 (0) | 2022.03.24 |
[SQLD]Ⅰ- 2장 데이터 모델링과 성능 - 1절 성능 데이터 모델링의 개요 (0) | 2022.03.23 |
[SQLD]Ⅰ- 1장 데이터 모델링의 이해 - 5절 식별자 (0) | 2022.03.22 |
[SQLD]Ⅰ- 1장 데이터 모델링의 이해 - 4절 관계 (0) | 2022.03.21 |