728x90
1. 물리 데이터 모델 설계
- 논리 모델을 적용하고자 하는 기술에 맞도록 상세화하는 과정
물리 데이터 모델링 변환 절차
개체를 테이블로 변환 -> 속성을 컬럼으로 변환 -> UID를 기본키로 변환 -> 관계를 외래키로 변환 -> 컬럼 유형과 길이 정의 -> 반 정규화 수행
2. 물리 데이터 저장소 구성
테이블 제약조건 설계
- 참조 무결성 제약조건
릴레이션과 릴레이션 사이에 대해 참조의 일관성을 보장하기 위한 조건- 제한(Restricted) : 참조무결성 원칙을 위배하는 연산을 거절
- 연쇄(Cascade) : 참조되는 릴레이션에서 튜플을 삭제하고, 참조되는 릴레이션에서 이 튜플을 참조하는 튜플들도 삭제
- 널 값(Nullify) : 참조되는 릴레이션에서 튜플을 삭제하고, 참조하는 릴레이션에서 해당 튜플을 참조하는 튜플들의 외래 키에 NULL 값을 넣음(NOT NULL인 경우 삭제 연산 거절)
- 인덱스 설계
- 인덱스 적용 기준
- 인덱스 분포도가 10~15% 이내인 경우 아래 수식 참고
분포도 = (1 / (컬럼 값의 종류)) * 100
분포도 = (컬럼 값의 평균 Row 수) / (테이블의 총 Row 수) * 100
- 인덱스 분포도가 10~15% 이내인 경우 아래 수식 참고
- 인덱스 컬럼 선정
- 분포도가 좋은 컬럼은 단독적으로 생성
- 자주 조합되어 사용되는 컬럼은 결합 인덱스로 생성
- 구성되는 컬럼 순서 선정(사용빈도, 유일성, 정렬 등) 에 유의
- 설계 시 고려 사항
- 지나치게 많은 인덱스는 오버헤드로 작용한다
- 추가적인 저장 공간이 필요
- 넓은 범위 처리 시 전체 처리보다 많은 오버헤드 발생 유의
- 인덱스와 테이블의 저장공간을 적절히 분리
- 인덱스 적용 기준
- 뷰(View) 설계
- 뷰 속성
- REPLACE : 이미 존재하는 경우 재생성
- FORCE : 강제적으로 뷰 생성
- NOFORCE : 기본 테이블이 존재할 때 뷰 생성
- WITH CHECK OPTION : 서브 쿼리 내의 조건을 만족하는 행만 변경
- WITH READ ONLY : DML 작업 불가
- 뷰 설계 시 고려사항
- 사용에 따라 수행속도에 문제 발생 가능
- 조건은 최적의 액세스 경로를 사용할 수 있도록
- 뷰 속성
- 클러스터(Cluster) 설계
- 적용 기준
- 분포도가 넓을수록 유리(인덱스의 단점 보완)
- 액세스 효율 향상을 위한 물리적 저장 방법
- 대량의 범위를 자주 액세스하는 경우 적용
- 여러 개의 테이블이 빈번한 조인을 일으킬 때 활용
- 고려 사항
- 검색 효율은 높여주지만 입력, 수정, 삭제 시는 부하가 증가함을 고려
- UNION, DISJOINT, ORDER BY, GROUP BY가 빈번한 컬럼이면 검토 대상
- 수정이 잦은 컬럼 검토 대상
- 처리 범위가 넓어 문제가 발생하는 경우 단일 테이블 클러스터링 고려
- 조인이 많아 문제가 발생되는 경우 다중 테이블 클러스터링을 고려
- 적용 기준
- 파티션(Partition) 설계
- 레인지 파티셔닝(Range Partitioning)
- 연속적인 숫자나 날짜를 기준
- 관리 시간 단축 가능
- 예) 우편번호, 일별, 월별, 분기별 등
- 해시 파티셔닝(Hash Partitioning)
- 파티션 키의 해시 함수 값에 의한 파티셔닝 기법
- 균등한 데이터 분할이 가능, 질의 성능 향상 가능
- 파티션을 위한 범위가 없는 데이터에 적합
- 리스트 파티셔닝(List Partitioning)
- 특정 파티션에 저장 될 데이터에 대한 병시적 제어가 가능한 파티셔닝 기법
- 분포도가 비슷하고 데이터가 많은 SQL에서 컬럼의 조건이 많이 들어오는 경우 유용
- 컴포지트 파티셔닝(Composite Partitioning)
- 범위분할 이후 해시 함수를 적용하여 재분할 하는 파티셔닝 기법
- 큰 파티션에 대한 I/O 요청을 여러 파티션으로 분산할 수 있다.
- 레이지 파티셔닝 할 수 있는 컬럼이나, 파티션이 너무 커서 효과적으로 관리할 수 없을 때 유용
- 파티션의 장점
- 성능 향상, 가용성 향상, 백업 가능, 경합 감수
- 레인지 파티셔닝(Range Partitioning)
- 디스크(Disk) 구성 설계
- 정확한 용량을 산정하여 디스크 사용의 효율을 높임
- 업무량이 집중되어 있는 디스크를 분리하여 설계
- 입출력 경합을 최소화하여 데이터의 접근 성능을 향상
- 디스크 구성에 따라 테이블스페이스 개수와 사이즈 등을 결정
- 파티션 수행 테이블은 별도로 분류
728x90
300x250