본문 바로가기
CS-SQL-DB

[DB] Transaction 트랜잭션 특징과 병행 제어 기법

by Jann 2022. 5. 4.
728x90

트랜잭션 Transaction 이란?

: 데이터베이스 시스템에서 하나의 논리적 기능을 정상적으로 수행하기 위한 작업의 기본 단위

 

트랜잭션 특징 : ACID

Automicity 원자성

: 트랜잭션 연산 전체가 성공 또는 실패되야 하는 성질, All or Nothing

Consistency 일관성

: 시스템이 가지고 있는 고정요소는 트랜잭션 수행 전과 후의 상태가 같아야 하는 성질

Isolation 격리성

: 동시에 실행되는 트랜잭션들이 서로 영향을 미치지 않아야 한다는 성질

Durability 영속성

: 성공적으로 완료된 결과는 영구적으로 반영

 

트랜잭션 제어 언어 TCL

- 커밋 Commit : 트랜잭션 처리가 정상적으로 될 경우 트랜잭션이 수행한 변경 내용을 데이터베이스에 반영하는 연산

- 롤백 Rollback : 트랜잭션 처리 중, 오류가 발생했을 때 오류 이전의 특정 시점 상태로 되돌려주는 제어어

- 체크포인트 Check point(Save point) : 현재의 트랜잭션을 작게 분할하는 명령어

 

병행제어란? Concurrency Control

: 다수 사용자 환경에서 여러 트랜잭션 수행할 때, 데이터베이스 일관성 유지를 위해 상호작용을 제어하는 기법

 

병행 제어 기법이란?

#로낙타다

- 로킹 Locking : 같은 자원을 액세스하는 다중 트랜잭션 환경에서 DB의 일관성과 무결성을 유지 위해 트랜잭션 순차 진행을 보장하는 직렬화 기법으로 데이터베이스, 파일 등은 로킹 단위가 될 수 있다.

: 로킹 단위 크면 로크의 수는 적어지고, 제어 기법은 간단 (병행성 감소)

: 로킹 단위 작으면, 로크의 수 많아지고 제어 기법은 까다로움 (병행성 증가)

 

- 낙관적 검증 : 트랜잭션이 어떤 검증도 수행하지 않고 일단 트랜잭션 수행 후 종료 시 검증을 수행해 DB에 반영

- 타임스탬프 순서 : 타임스탬프를 부여하여 부여된 시간에 따라 트랜잭션 작업을 수행하는 기법

- 다중버전 동시성 제어 : 트랜잭션 타임스탬프와 데이터의 타임스프를 비교해 직렬가능성이 보장되는 적절한 버전을 선택해 접근하도록 하는 기법

 

728x90

댓글