데이터베이스 트랜잭션, 커밋, 롤백, 트랜잭션 전파

배기호 Notebook·2023년 7월 28일
0

CS공부

목록 보기
25/35

데이터베이스 트랜잭션, 커밋, 롤백, 트랜잭션 전파

트랜잭션과 무결성

트랜잭션

트랜잭션은 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 단위를 말한다.

데이터베이스에 접근하는 방법은 쿼리이므로,
트랜잭션은 여러개의 쿼리들을 하나로 묶는 단위이다.


커밋과 롤백

커밋은 여러 쿼리가 성공적으로 처리되었다고 확정하는 명령어이다. 트랜잭션 단위로 수행되며 변경된 내용이 모두 영구적으로 저장되는 것을 말한다. "커밋이 수행되었다."를 "하나의 트랜잭션이 성공적으로 수행되었다." 라고도 말한다.


예를들어 update, insert, delete의 쿼리가 하나의 트랜잭션 단위로 수행되고 이후에 데이터베이스에 영구 저장된다.

하지만 에러나 이슈 때문에 트랜잭션 전으로 
돌려야한다면 어떻게 해야할까?

이때 사용하는것이 롤백이다.

롤백

롤백이란 트랜잭션으로 처리한 하나의 묶음 과정을 일어나기 전으로 돌리는 일(취소)을 말한다.

이러한 커밋과 롤백 덕에 데이터의 무결성이 보장된다. 또한, 데이터 변경 전에 변경 사항을 쉽게 확인할 수 있고, 해당 작업을 그룹화할 수 있다. 이 때문에 트랜잭션으로 묶는 로직에 외부 API호출은 자제해야한다.(롤백도 생각해야하기 때문)

트랜잭션 전파

트랜잭션을 수행할 때 커넥션 단위로 수행하기 때문에 커넥션 객체를 넘겨서 수행해야 한다. 하지만 이를 매번 넘겨주기가 어렵기도하고 번거롭다. 이를 넘겨서 수행하지 않고 여러 트랜잭션 관련 메서드의 호출을 하나의 트랜잭션에 묶이도록 하는 것을 트랜잭션 전파라고 한다.


> 참고
인프런 강의 _ CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조대시보드

0개의 댓글