[230227] 트랜잭션

뜨개발자·2023년 2월 27일
0

TIL

목록 보기
50/75

트랜잭션이란?

트랜잭션은 더이상 쪼개면 안 되는 DB 작업 흐름의 한 단위를 말한다.

트랜잭션에는 네 가지 원칙이 있다.
원자성이라는 것이 바로 트랜잭션의 '쪼개면 안 되는'의 성질을 말한다.
하나의 트랜잭션이 실행되다가 어떤 작업에 이슈가 생긴다면 그 작업 뿐만 아니라 해당 트랜잭션이 실행되기 이전의 상태로 돌아가야 한다.
즉, 트랜잭션은 정상적으로 실행되거나 혹은 아예 실행되지 않는 두 가지 상태만 존재해야 하는, 나눌 수 없는 흐름이며 이것이 원자성이다.

일관성은 트랜잭션의 실행 전과 후의 데이터베이스 상태가 모두 유효해야 한다는 원칙이다.
예를 들면, null이 비허용으로 설정된 필드에 null 값이 들어가있는 경우 등이 이런 유효성을 해치는 경우를 말한다.

고립성은 트랜잭션은 하나하나 단독적으로 실행되어야 한다는 원칙이다.
어떤 트랜잭션이 실행 중이라면, 다른 트랜잭션은 그 트랜잭션이 성공하거나 실패할 때까지 대기 상태로 머물러야 한다.

지속성은 트랜잭션이 수행된 결과가 영구적으로 남아야 한다는 원칙이다.
실행 결과가 성공했을 때나 실패하여 실행 전으로 돌아가게 되더라도 그 내용이 보존되어야 한다.

profile
뜨개질하는 개발자

0개의 댓글