Study/정보처리기사

정보처리기사 실기 2장. 데이터 입출력 구현_6

edoyyoy 2023. 9. 22. 01:22

2-19. 인덱스

• 인덱스 (Index)

   < 키 값, 포인터 > 쌍으로 구성된 데이터 구조

      ‣ 인덱스를 활용하면 데이터 레코드에 빠르게 접근 가능

 

• 인덱스의 종류

 1. 트리 기반 인덱스  인덱스를 저장하는 블록들이 트리 구조로 구성
 2. 비트맵 인덱스  인덱스 컬럼의 데이터를 Bit 값으로 변환하여 인덱스 키로 사용
 3. 함수 기반 인덱스  컬럼에 특정 함수나 수식을 적용한 산출된 값을 사용
 4. 비트맵 조인 인덱스  다수의 조인된 객체로 구성된 인덱스
 5. 도메인 인덱스  개발자가 필요한 인덱스를 직접 만듦

 

• 클러스터드 / 넌클러스터드 인덱스

클러스터드 인덱스
(Clustered Index)
 인덱스 키의 순서에 따라 데이터가 정렬되어 저장 
 실제 데이터가 순서대로 저장되어 있어 인덱스를 검색하지 않아도 빠르게 데이터를 찾을 수 있음
넌클러스터드 인덱스
(Non-Clustered Index)
 인덱스의 키 값만 정렬되어 있고, 실제 데이터는 정렬되어 있지 않음
 데이터 삽입, 삭제 시 데이터를 재정렬해 순서를 유지해야함

 

 


2-20. 뷰 / 클러스터

• 뷰 (View)

   가상 테이블

      ‣ 하나 이상의 기본 테이블로부터 유도

      ‣ 저장장치 내 물리적으로 존재하지 않지만, 사용자에게는 있는 것 처럼 간주됨

      ‣ 데이터를 안전하게 보호하는 효율적인 기법으로 사용 가능

 

• 뷰의 장단점

장점 단점
논리적 데이터 독립성을 제공 독립적인 인덱스를 가질 수 없음
동일 데이터에 대해 여러 사용자의 상이한 요구를 지원 뷰의 정의를 변경할 수 없음
간단하게 사용자의 데이터 관리 뷰로 구성된 내용에 대해 삽입, 삭제, 갱신 연산에 제약이 존재
접근 제어를 통해 자동 보안이 제공  

 

클러스터 (Cluster)

   동일한 성격의 데이터를 동일한 데이터 블록에 저장하는 물리적 저장 방법

      ‣ 데이터의 분포도가 넓을수록 유리    → 비슷한 것 끼리 묶기 때문

      ‣ 단일 테이블 클러스터링 = 처리 범위가 넓은 경우

      ‣ 다중 테이블 클러스터링 = 조인이 많이 발생하는 경우 

      ‣ 장점 : 데이터 조회 속도 향상

                   분포도가 넓은 테이블의 경우 저장 공간 절약 가능

      ‣ 단점 : 입력, 수정, 삭제시 작업 성능 저하

         

✓ 분포도 

 인덱스 = 분포도가 좁은 테이블에 유리

 클러스터링 = 분포도가 넓은 테이블에 유리

 

 


2-21. 파티션

파티션 (Partition)

   대용량의 테이블이나 인덱스를 작은 논리적 단위인 파티션으로 나누는 것

       데이터 처리 = 테이블 단위

       데이터 저장 = 파티션 단위

      ‣ 장점 : 성능 저하 방지 및 데이터 관리 용이 

 

파티션의 장단점

장점  데이터 접근 시 액세스의 범위를 줄임   쿼리 성능 향상
 파티션별로 데이터가 분산되어 저장   디스크 성능 향상
 파티션별로 백업 및 복구 수행  속도 향상
 시스템 장애 시 데이터 손상 정도를 최소화
 데이터 가용성 향상
 파티션 단위로 입출력을 분산시킬 수 있음
단점   하나의 테이블을 세분화  세심한 관리가 요구됨
 테이블간 조인에 대한 비용이 증가
 용량이 작은 테이블에 파티셔닝을 수행하면 오히려 성능이 저하됨

 

 파티션의 종류

범위 분할 
(Range Partitioning)
지정한 열의 값을 기준으로 분할
기간에 따라 분할이 가능
해시 분할 
(Hash Partitioning)
해시함수를 적용한 결과 값에 따라 데이터를 분할
특정 파티션에 데이터가 집중되는 범위 분할의 단점을 보완한 것 = 데이터의 고른 분산
특정 데이터가 어디에 있는지 판단할 수 없음
조합 분할 
(Composite Partitioning)
범위 분할로 분할한 다음 해시 함수를 적용하여 다시 분할하는 방식
범위 분할한 파티션이 너무 커서 관리가 어려울 때 유용