개발바닥

[ 기술면접 / 데이터베이스 ] 트랜잭션 ( Transaction ) 본문

개인 공부/기술 면접

[ 기술면접 / 데이터베이스 ] 트랜잭션 ( Transaction )

라이언 2020. 3. 18. 09:36
반응형

트랜잭션이란? 

데이터베이스의 DML(Data Manipulation Language), 즉 삽입(INSERT), 갱신(UPDATE), 삭제(DELETE)와 관련된 논리적인 작업을 말하며, DML 실행과 동시성 제어를 위한 중요한 개념이다.

관계형 데이터베이스 시스템은 데이터를 처리할 때 트랜잭션을 통해 정상 종료나 사용자 프로세스 실패나 시스템 실패와 같은 비정상 종료에 대해 데이터의 신뢰성과 일관성을 보장한다.

즉, 데이터베이스의 데이터 무결성이 보장되는 상태에서 DML 작업을 완수하기 위한 기본 작업 단위이다.

 

일반적으로 DML 실행과 실행에 대한 커밋/롤백 단계까지를 트랜잭션이라고 부르지만, 실무에서는 데이터베이스에서 SELECT 문으로 데이터를 조회하고 DML을 실행하여 종료하는 과정까지를 트랜잭션이라고 부른다.

 

트랜잭션의 4가지 특징에 대해서 알아보겠습니다.

개념 내용
원자성 (Atomicity)

트랜잭션의 처리가 완전히 끝나지 않았을 경우에는 원상태로  되돌아가야된다.

일관성 (Consistency)

트랜잭션의 실행이 성공적으로 완료되면 데이터베이스는 모순 없이 일관성이 보존된 상태여야 한다.

고립성 (Isolation)

어떤 트랜잭션도 다른 트랜잭션의 부분적 실행 결과를 볼 수 없다.

지속성 (Durability)

트랜잭션이 성공하면 트랜잭션의 결과를 영구적으로 보장해야 한다.

 

ACID에 관해서 그림으로 확인해보겠습니다.

원자성

원자성 ( Atomicity ) 

A 계좌에서 10만원을 B 계좌로 입금을 했을 때 이체 작업이 실패하게 되면 두 계좌를 원상태로 돌아가던지 모든 작업이 정상적으로 처리 되던지 해야된다. 전송 중 실패를 하게 되면 롤백으로 다시 원상태로 돌아간다.

 

일관성

일관성 ( Consistency )

트랜잭션이 완료되면 데이터베이스의 데이터는 일관되게 유지되어야 한다.

 

 

고립성

고립성 ( Isolation )

트랜잭션이 완료되지 않은 동안에는 다른 트랜잭션이 참조하거나 변경할 수 없다.

 

보존성

보존성 ( Durability )

트랜잭션이 정상적으로 완료되면 해당 데이터는 저장되어 보존되어야 한다.

 

 

트랜잭션 제어어 ( TCL , Transaction Control Language ) 

개념 설명
커밋 ( Commit ) 트랜잭션의 모든 미결정 데이터를 영구적으로 반영함으로써 트랜잭션을 종료한다.
롤백 ( Rollback ) 트랜잭션의 모든 미결정 데이터 변경을 포기함으로써 트랜잭션을 종료한다.

 

반응형
Comments