Database

Transaction

infitry 2022. 9. 26. 23:13
반응형

 

오늘은 Transaction에 대해 알아보겠습니다.

 

Transaction 이란?

- 데이터 베이스의 상태를 변화시키기 위한 하나의 단위

 

데이터 베이스의 상태를 변화시킨다는 것은 뭘까요?

예를 들어 아래와 같은 테이블이 존재한다고 가정합니다.

각 사용자의 현재 보유한 금액을 저장하는 테이블입니다.

 

테이블 1.

ID 이름 보유한 금액
1 이이원 1000
2 이우지 2000

 

해당 테이블에 INSERT, UPDATE, DELETE로 상태를 변화시킬 수 있습니다.

밑의 예시 Transaction에서 2개의 행위가 이루어질 수 있습니다. 

 

Transaction 1.

"ID가 1인 사용자의 보유한 금액을 2000으로 변경하세요." (INSERT)
"ID가 2인 사용자를 삭제하세요." (DELETE)

 

이러한 행위가 이루어질 수 있는데 이런 행위 들을 상태를 변화시킨다고 할 수 있습니다.

Transaction 특징 (ACID) 

원자성(Atomicity) : 하나의 Transaction 은 Database에 모두 반영되거나 모두 반영되지 않아야 합니다.

위의 Transaction 1. 에서 2가지 동작(INSERT, DELETE)을 처리했는데 2가지 동작 모두 처리되어야 합니다.

 

일관성(Consistency) : Transaction의 작업 처리의 결과는 일관성이 있어야 합니다.
예를 들어 위의 테이블에서 "ID는 항상 존재하여야 한다."라는 규칙이 있으면 규칙에 위배되지 않아야 합니다.

 

독립성(Isolation) : 둘 이상의 Transaction이 실행되고 있을 때 각각 Transaction에서 서로 방해받지 않는 특성을 뜻 합니다.

 

지속성(Durability) : Transaction이 커밋된 이후에는 결과가 영구적으로 반영되어야 합니다.

Commit과 Rollback

Commit : 하나의 트랜잭션이 성공적으로 끝나서 데이터베이스가 일관성 있는 상태에 있음 알려 주기 위해 사용하는 연산입니다.

 

Rollback : 하나의 Transaction 처리가 비정상적으로 종료되어 Transaction 원자성이 깨진 경우

우의 Transaction 1. 에서 원자성이 깨진 경우 즉 INSERT는 성공했으나 DELETE를 실패한 경우 Rollback 됩니다.

Transaction 1. 은 전부 처리되지 않습니다.

 

이렇게 트랜잭션이 무엇인지 특징 및 Commit Rollback에 대해 알아보았습니다.

궁금한 점이나 내용이 알고 계신 것 과 다르다면 언제든지 편하게 문의 부탁드립니다.

반응형