Transaction에 대해 알아보자

DoooongDong·2022년 11월 20일
0

UMC 3기 스터디

목록 보기
4/6
post-thumbnail

Transaction(트랜잭션)이란?

  • Transaction은 Database의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업 단위나 한번에 수행되어야 할 일련의 연산을 의미합니다.

Transaction의 특징

  • Database 시스템에서 병행제어 및 회복 작업이 수행될 때 처리 되는 작업의 논리적 단위입니다.

  • 사용자가 어떠한 시스템에 서비스를 요청할 때 시스템이 응답하기 위한 상태 변환 과정의 작업단위입니다.

  • 각 트랜잭션은 Commit 혹은 Rollback 되어야 합니다.

commit : 하나의 논리적인 단위인 트랜잭션에 대한 작업이 성공적으로 끝났으며 Database가 일관된 상태로 있을 때 트랜잭션이 정상적으로 연산이 완료되었다는 것을 알려주는 연산입니다.

rollback : 하나의 트랜잭션 처리가 오류 등으로 비정상적으로 종료되어 Database의 일관성을 깨트릴 경우에, 이 트랜잭션의 일부가 정상적으로 처리되었더라도 트랜잭션의 원자성을 보장하기 위해 모든 연산을 취하는 것 입니다.

Transaction의 4가지 성질

Database system은 각각의 트랜잭션에 대해 원자성(Atomicity), 일관성(Consistency), 독립성(Isolation), 영구성(Durability)을 보장합니다.

이러한 성질들의 첫 글자를 따서 ACID 라고 부릅니다.

  1. Atomicity (원자성)
    트랜잭션의 연산은 Database에 모두 반영이 되거나 전혀 반영이 되지 않아야합니다. 트랜잭션 안에서의 모든 명령은 완벽하게 수행되어야하고, 만약 이 과정에서 작은 오류라도 발생하면 트랜잭션은 전부 작업이 취소되어야합니다.

  2. Consistency (일관성)
    트랜잭션은 실행이 성공적으로 완료되면 항상 일관성 있는 상태로 변환되어야합니다. 그리고 시스템이 가지고 있는 고정적인 요소는 트랜잭션 수행 전,후의 상태가 같아야합니다.

  3. Isolation (격리성)
    어떤 트랜잭션이 실행되고 있을 때 다른 트랜잭션의 연산이 끼어들 수 없습니다. 그리고 다른 트랜잭션이 수행중인 트랜잭션의 결과를 참조하기 위해서는 수행중인 트랜잭션이 완전히 완료될 때 까지 기다려야합니다.

  4. Durability (지속성, 영속성)
    성공적으로 완료된 트랜잭션은 시스템이 고장나도 영구적으로 반영되어 있어야합니다.





[참고]
https://ko.wikipedia.org/wiki/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4_%ED%8A%B8%EB%9E%9C%EC%9E%AD%EC%85%98
https://devkingdom.tistory.com/270
https://mangkyu.tistory.com/154

profile
꺾이지 말자 :)

0개의 댓글