Jeunwork space
시나공 정보처리기사 실기 - 반정규화 본문
반정규화
- 시스템의 성능을 향상하고 개발 및 운영의 편의성 등을 높이기 위해 정규화된 데이터 모델을 의도적으로 통합, 중복, 분리하여 정규화 원칙을 위배하는 행위
- 반정규화를 수행하면 시스템의 성능이 향상되고 관리 효율성은 증가하지만 데이터의 일관성 및 정합성이 저하될 수 있음
- 과도한 반정규화는 오히려 성능을 저하시킬 수 있음
- 방법
· 테이블 통합
· 테이블 분할
· 중복 테이블 추가
· 중복 속성 추가
1. 테이블 통합
- 두 개의 테이블이 조인되어 사용되는 경우가 많을 경우 성능 향상을 위해 아예 하나의 테이블로 만들어 사용
- 테이블 통합을 고려하는 경우
· 두 개의 테이블에서 발생하는 프로세스가 동일하게 자주 처리되는 경우
· 항상 두 개의 테이블을 이용하여 조회를 수행하는 경우
- 종류
· 1:1 관계 테이블 통합
· 1:N 관계 테이블 통합
· 슈퍼타입/서브타입 테이블 통합
2. 테이블 분할
- 수평 분할 : 레코드를 기준으로 테이블 분할. 레코드별로 사용빈도의 차이가 큰 경우 사용 빈도에 따라 테이블을 분할
- 수직 분할 : 하나의 테이블에 속성이 너무 많을 경우 속성을 기준으로 테이블을 분할
· 종류: 갱신 위주의 속성 분할, 자주 조회되는 속성 분할, 크기가 큰 속성 분할, 보안을 적용해야 하는 속성 분할
3. 중복 테이블 추가
- 작업의 효율성을 향상시키기 위해 테이블을 추가하는 것
- 중복 테이블을 추가하는 경우
· 여러 테이블에서 데이터를 추출해서 사용해야 하는 경우
· 다른 서버에 저장도니 테이블을 이용해야 하는 경우
- 방법
집계 테이블 추가 : 집계 데이터를 위한 테이블을 생성하고, 각 원본 테이블에 트리거를 설정하여 사용하는 것
진행 테이블 추가 : 이력 관리 등의 목적으로 추가하는 테이블
특정 부분만 포함하는 테이블 추가 : 데이터가 많은 테이블의 특정 부분만을 사용하는 경우 해당 부분만으로 새로운 테이블 생성
4. 중복 속성 추가
- 조인해서 데이터를 처리할 때 데이터를 조회하는 경로를 단축하기 위해 자주 사용하는 속성을 하나 더 추가하는 것
- 데이터의 무결성의 확보가 어렵고 디스크 공간이 추가로 필요함
- 중복 속성을 추가하는 경우
· 조인이 자주 발생하는 속성인 경우
· 접근 경로가 복잡한 속성인 경우
· 액세스의 조건으로 자주 사용되는 속성인 경우
· 기본키의 형태가 적절하지 않거나 여러개의 속성으로 구성된 경우
'정보처리기사 실기' 카테고리의 다른 글
시나공 정보처리기사 실기 - 트랜잭션 분석 / CRUD 분석 (0) | 2021.06.08 |
---|---|
시나공 정보처리기사 실기 - 데이터베이스 저장 공간 설계 (0) | 2021.06.08 |
시나공 정보처리기사 실기 - 시스템 카탈로그 (0) | 2021.06.08 |
시나공 정보처리기사 실기 - 정규화 (0) | 2021.06.08 |
시나공 정보처리기사 실기 - 함수적 종속 (0) | 2021.06.08 |