1. 인덱스 설계 (A) <키 값, 포인터>
- 인덱스의 개념: 인덱스는 데이터 레코드에 빠르게 접근하기 위해 <키 값, 포인터> 쌍으로 구성된 데이터 구조이다.
- 인덱스가 없으면 값을 찾을 때 TABLE SCAN이 발생한다.
- 클러스터드 인덱스 : 인덱스 키의 순서에 따라 데이터가 정렬되어 있는 방식 (한 개의 릴레이션에 하나의 인덱스만 생성)
- 넌-클러스터드 인덱스 : 인덱스의 키 값만 정렬되어 있을 뿐 실제 데이터는 정렬되지 않는 방식 (한 개의 릴레이션에 여러 개의 인덱스 생성)
- 트리 기반 인덱스 : 인덱스를 저장하는 블록들이 트리 구조를 이루고 있는 것
- B 트리 인덱스
- B+ 트리 인덱스 : 인덱스 세트와 순차 세트로 구분
- 인덱스 세트 : 단말 노드가 아닌 노드로 구성
- 순차 세트 : 단말 노드로만 구성
- 비트맵 인덱스
- 인덱스 컬럼의 데이터를 Bit값인 0 , 1로 변환하여 인덱스키로 사용하는 방법
- 분포도가 좋은(10~15%) 컬럼에 적합
- 함수 기반 인덱스
- 컬럼의 값 대신 컬럼에 특정 함수나 수식을 적용하여 산출된 값을 사용하는 것으로 B+ 트리 인덱스 또는 비트맵 인덱스를 생성하여 사용한다.
- 비트맵 조인 인덱스
- 다수의 조인된 객체로 구성된 인덱스
- 도메인 인덱스 (확장형 인덱스)
- 개발자가 필요한 인덱스를 직접 만들어 사용하는 것
2. 뷰 설계 (A) (가상 테이블)
- 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 사용하는 가상 테이블이다.
- 물리적으로 존재하지 않는다
- 데이터의 논리적 독립성을 제공한다.
- 기본 테이블의 기본키를 포함해야 삽입, 삭제, 갱신이 가능하다
- 접근 제어를 통한 자동 보안이 제공된다.
3. 클러스터 설계 (A) (비슷한 것끼리 묶는다)
- 데이터 저장 시 데이터 액세스 효율을 향상시키기 위해 동일한 성격의 데이터를 동일한 데이터 블록에 저장하는 물리적 저장 방법
- 클러스터링키로 지정된 컬럼 값의 순서대로 저장된다
- 클러스터링키 : 클러스터링된 테이블에서 각각의 행에 접근할 때 기준이 되는 열 (Row)
- 클러스터의 특징
- 클러스터링 된 테이블은 데이터 조회 속도는 향상시키지만 데이터 입력, 수정, 삭제는 저하시킨다.
- 데이터의 분포도가 넓을수록 유리하다 (인덱스는 좋을 수록 유리)
- 클러스터 대상 테이블
- 분포도가 넓은 테이블
- 자주 조인되는 테이블
- 대량의 범위를 자주 조회하는 테이블
- 입력, 수정, 삭제가 자주 발생하지 않는 테이블
- 클러스터링키로 지정된 컬럼 값의 순서대로 저장된다
4. 파티션 설계 (A)
- 대용량의 테이블이나 인덱스를 작은 논리적 단위인 파티션으로 나누는 것
- 대용량DB의 경우 중요한 몇 개의 테이블에 데이터가 집중되므로 작은 단위로 나눠 분산시키기 위해 사용
- 테이블이나 인덱스를 파티셔닝 하면 파티션키(파티션을 나누는 기준이 되는 열) 또는 인덱스키에 따라 물리적으로 별도의 공간에 저장!
- 장점
- 데이터가 분산되어 저장되어 디스크의 성능 향상
- 파티션별로 백업. 복구하므로 속도가 빠름
- 데이터 가용성 향상
- 단점
- 테이블간 조인에 대한 비용 증가
- 용량이 작은 테이블에 파티셔닝하면 오히려 성능 저하
- 파티셔닝 종류
- 범위 분할 : 열의 값을 기준으로 분할 (일별, 월별, 분기별)
- 해시 분할 : 해시 함수를 적용한 결과 값에 따라 분할
- 데이터를 고르게 분산할 때 유용
- 특정 데이터가 어디에 있는지 모른다
- 조합 분할 : 범위 분할로 분할한 다음 해시 함수를 적용하여 다시 분할한다.
- 인덱스 파티션 : 파티션된 테이블의 데이터를 관리하기 위해 인덱스를 나눈 것
- Local Partitioned Index : 테이블 파티션과 인덱스 파티션 1:1 대응 ( 데이터 관리가 쉽다)
- Global Partitioned Index : 테이블 파티션과 인덱스 파티션이 독립적으로 구성
데이터베이스 용량 설계 (C)
- 목적: 데이터베이스의 용량을 정확히 산정하여 디스크의 저장 공간을 효과적으로 사용하고 확장성 및 가용성을 을 높인다
- 절차
- 1. 데이터 예상 건수, 로우 길이, 보존 기간, 증가율 등 기초 자료를 수집하여 용량을 분석한다.
- 2. 분석된 자료를 바탕으로 DBMS에 이용될 테이블, 인덱스 등 오브젝트별 용량을 산정한다.
- 3. 테이블과 인덱스의 테이블스페이스 용량을 산정한다.
- 4. 데이터베이스에 저장될 모든 데이터 용량과 데이터베이스 설치 및 관리를 위한 시스템 용량을 합해 디스크 용량을 산정한다.
'IT > 정보처리기사실기 공부' 카테고리의 다른 글
[정보처리기사실기] 개발 환경 구축, 모듈, 공통 모듈, DBMS 접속 (0) | 2020.10.04 |
---|---|
[정보처리기사실기] 통합구현 (0) | 2020.10.02 |
[정보처리기사실기] 데이터 모델, 정규화, 데이터 모델 변환, 반정규화 (0) | 2020.09.29 |
[정보처리기사실기] 시퀀스 다이어그램, 커뮤니케이션, 상태 다이어그램 (0) | 2020.09.28 |
[정보처리기사실기] 활동 다이어그램, 클래스 다이어그램 (0) | 2020.09.28 |