트랜잭션 개념과 ACID 속성

김명관·2024년 7월 7일

CS스터디

목록 보기
4/6

트랜잭션

트랜잭션이란 데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위 혹은 일련의 연산들을 뜻한다.
간단하게 말해 SELECT, INSERT, DELETE, UPDATE와 같은 질의어(SQL)를 이용해 데이터베이스를 접근하는 것을 의미한다. 작업의 단위는 질의어 한 문장이 아니라 한꺼번에 수행되어야 할 연산을 모아놓은 것이다.

트랜잭션 특성

1. 원자성(Atomicity)

  • 원자성은 트랜잭션이 모두 수행이 되거나, 혹은 전혀 수행되지 않아야 한다.

2. 일관성(Consistency)

  • 일관성은 시스템이 가지고 있는 고정 요소는 트랜잭션 수행 전과 수행 후의 상태가 같아야 한다는 말로, 트랜잭션이 진행되는 동안에 데이터베이스가 변경되더라도 업데이트된 데이터베이스로 트랜잭션이 진행되는 것이 아니라, 처음에 트랜잭션을 진행하기 위해 참조한 데이터베이스로 진행되는 것이다.
  • 데이터베이스의 제약조건을 위배하는 작업을 트랜잭션 과정에서 수행할 수 없음을 나타낸다.

3. 독립성(Isolation)

  • 독립성은 하나의 트랜잭션이 실행하고 있는 도중에 다른 트랜잭션이 하이재킹 할 수 없다.
  • 수행중인 트랜잭션은 완전히 완료될 때까지 다른 트랜잭션에서 수행 결과를 참조할 수 없다.

4. 지속성(Durability)

  • 트랜잭션이 성공적으로 완료되었으면, 시스템이 고장나더라도 결과는 영구적으로 반영되어야 한다.

트랜잭션의 연산

  • COMMIT

COMMIT 연산은 한개의 논리적 단위(트랜잭션)에 대한 작업이 성공적으로 끝났고 데이터베이스가 다시 일관된 상태에 있을 때, 이 트랜잭션이 행한 연산이 완료된 것을 트랜잭션 관리자에게 알려주는 연산이다.

  • ROLLBACK

ROLLBACK 연산은 하나의 트랜잭션 처리가 비정상적으로 종료되어 데이터베이스의 일관성을 깨뜨렸을 때, 이 트랜잭션의 일부가 정상적으로 처리되었더라도 트랜잭션의 원자성을 구현하기 위해 이 트랜잭션이 행한 모든 연산을 취소(Undo)하는 연산이다.

profile
신입 백엔드 개발자

0개의 댓글