자격증/정보처리기사

[정보처리기사] 트랜잭션, 인덱스, 뷰 , 클러스터

IT록흐 2021. 10. 3. 16:57
반응형

▷ 트랜잭션

 

데이터베이스 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위

상태변환 작업, 병행 제어 작업, 회복 잡업 시 사용

 

트랜잭션 특성

 

- 원자성(Atomicty) : 트랜잭션 연산이 데이터베이스에 완전 Commit 되든지 Rollback 하든지 해야함.

- 일관성(Consistency) : 트랜잭션 Commit 시, 데이터베이스는 일관성을 유지해야함

- 독립성(Isolation) : 둘 이상의 트랜잭션이 병행 실행중, 다른 하나의 트랜잭션의 연산에 영향을 줄 수 없음

- 영속성(Durability) : 성공적으로 완료된 트랜잭션 결과는 시스템이 고장나도 영구적 반영되어야 함.

 

CRUD 분석

 

프로세스와 테이블 간에 CRUD 매트릭스를 만들어 트랜잭션을 분석하는 것이다. CRUD 분석을 통핸 많은 트랜잭션이 몰리는 테이블을 파악할 수 있다. ( 우선순위 : Create > Delete > Update > Read ) 

 

CRUD 매트릭스를 기반으로 테이블에 발생하는 트랜잭션 양을 분석하고 테이블에 저장되는 데이터 양을 유추하고 이를 근거로 DB의 용량 산정 및 구조의 최적화를 목적으로 한다. 프로세스가 과도하게 접근하는 테이블은 집중 접근 테이블을 여러 디스크에 분산 배치하여 디스크 입출력을 향상 시킬 수 있다.

 

 

 인덱스

 

레코드에 빠르게 접근하기 위해 < 키 , 포인터 > 쌍으로 구성되는 데이터 구조

물리적인 레코드 구조에 빠르게 접근할 수 있으나 삽입, 삭제가 많이 일어나는 경우 오버헤드가 크다.

 

종류

트리 기반 인덱스 : 인덱스 블록이 트리 구조

비트맵 인덱스 : 인덱스 컬럼의 데이터를 Bit 값이 0 또는 1로 변환하여 인덱스 키로 사용

함수 기반 인덱스 : 컬럼의 값 대신 컬럼에 특정 함수(Function)나 수식(Expression)을 적용하여 산출된 값 사용

비트맵 조인 인덱스 : 다수의 조인된 객체로 구성된 인덱스

도메인 인덱스 : 개발자가 필요한 인덱스를 직접 만들어 사용

 

클러스터드 인덱스(Clustered Index) : 인덱스 키의 순서에 따라 데이터가 정렬되어 저장되는 방식

넌클러스터드 인댁스(Non-Clustered Index) : 인덱스의 키만 정렬되어 있고 실제 데이터는 정렬되지 않는 방식

 

 

뷰 / 클러스터

 

뷰(View)

 

접근이 허용된 자료만 제한적으로 보여주기 위해 기본 테이블로 부터 유도된 가상의 테이블

CREATE : 생성, DROP : 제거

 

장점

논리적 데이터 독립성 제공

동일 데이터에 대한 여러 사용자의 요구 지원 가능

사용자의 데이터 관리가 간단해짐

접근 제어를 통한 자동 보안

 

단점 

독립적인 인덱스를 가질 수 없음

뷰의 정의를 변경할 수 없음

뷰로 구성된 내용에 삽입, 삭제, 갱신 연산에 제약

 

클러스터(Cluster)

 

동일한 성격의 데이터를 동일한 데이터 블록에 물리적으로 저장하여 엑세스 효율을 향상시키는 방법

데이터의 분포도가 넓은 테이블은 클러스터링하면 저장공간 절약 가능

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

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

반응형