[정보처리산업기사_과정평가형_필기요약] 반정규화/ 물리데이터모델링
반정규화 : 정규화 모델을 수행하면 종속성 활용성은 향상되나 수행속도가 증가하는 경우가 발생하여 성능향상을 위해 중복을 허용하고 조인을 줄이는 성능향상 방법
특징 : 데이터 모델링 규칙에 얽매이지 않고 수행 / 시스템이 물리적으로 구현되었을 때 성능향상을 목적으로 함 (인덱스의 조정이나 부분범위처리로 유도하고 클러스터링으로 해결 가능한지 검토 후 결정)
*오버헤드: 어떤 처리를 하기 위해 들어가는 간접적인 처리 시간 · 메모리 등
*클러스터링: 비슷한 특성을 가진 데이터들의 집단을 정의하는 것
>반정규화 유형
1.중복테이블 추가
-용도: 다량의 범위를 자주 처리하는 경우, 특정 범위 데이터만 자주 처리되는 경우,처리범위를 줄이지 않고는 수행 속도를 개선할 수 없는 경우
-방법: 집계 테이블 추가 / 진행 테이블 추가/ 특정부분만 포함하는 테이블 추가
2. 테이블 조합
-용도: 처리가 두개 이상인 테이블에 대해 항상 같이 일어나는 경우
-방법:해당 테이블을 통합하여 설계
3. 테이블 분할
-용도: 컬럼 사용빈도의 차이가 많은 경우/각각의 사용자가 각기 특정 부분만 지속적으로 사용하는 경우
- 방법 : 수직분할(컬럼을 분할하여 새 테이블 생성), 수평분할(하나의 테이블을 분할하는 것)
4. 테이블 제거
- 용도: 테이블 재정의나 컬럼의 중복화로 더 이상 액세스 되지 않는 테이블이 발생할 경우
-방법:해당 테이블 삭제
5. 컬럼의 중복화
-성능향상 목적의 반정규화로 중복 데이터를 허용하는 경우
-방법: 필요한 해당 테이블이나 칼럼을 추가한다
물리데이터 모델링(논리모델을 적용하고자 하는 기술에 맞게 상세화 하는 과정)
1.테이블 제약조건(참조무결성 관리를 위해 정의함)
Delete constraint : 참조된 기본키 값이 삭제될 경우 처리 내용을 정의한다
Update constraint: 참조된 기본키 값이 수정될 경우 처리 내용을 정의한다
2.인덱스설계
*분포도 : 특정 컬럼의 데이터가 테이블에 평균적으로 분포되어 있는 정도
인덱스적용기준: 컬럼의 분포도가 10~15%이내인 경우
3. 뷰(테이블을 기초로 하는 가상 테이블)
-OR REPLACE : 뷰가 이미 존재하는 경우 재생성
-FORCE: 기본 테이블의 존재 여부 관계 없이 뷰생성
-NOFORCE: 기본 테이블이 존재할 때 만 뷰 생성
-WHITH CHECK OPTION: 서브쿼리 내의 조건을 만족하는 행만 변경
뷰 설계 시 고려사항
-테이블을 액세스하는 것이므로 사용에 따라 수행 속도에 문제 발생 가능
-뷰 내의 SELECT 문의 조건은 가능한 최적의 액세스 경로 사용을 지향
4. 클러스터 설계: 분포도가 넓을수록 오히려 유리(인덱스의 단점을 해결)한 기법
지정된 컬럼 값의 순서대로 데이터 행을 저장하는 방법으로 하나 혹은 그 이상의 테이블을 같은 클러스터 내 저장 가능
5. 파티션 설계(파티션 종류-범위분할:지정한 열 값을 기준으로 분할/해시분할:해시함수에 따라 데이터를 분할/조합분할:범위분할+해시분할)
장점+)데이터 엑세스 범위를 줄여 성능 향상/각 분할 영역을 독립적으로 백업하고 복구 가능
물리데이터저장소=디스크