기술(Tech, IT)/데이터베이스(Database)

[DB] Transaction(트랜잭션) 정의 및 MySQL 명령어

Daniel803 2023. 3. 29. 03:20

 Transaction에 정의는 위키피디아에 따르면 아래와 같다.

:In computer science, transaction processing is information processing that is divided into individual, indivisible operations called transactions. Each transaction must succeed or fail as a complete unit; it can never be only partially complete.

: 컴퓨터 과학에서 Transaction 처리는 더이상 분리되지 않는 연산 정보 처리를 말한다. 각 Transaction은 처리를 완전히 성공하거나 실패해야한다. 즉, 부분적은 처리는 허락되지 않는다.

 

 Database에서 Transaction 역시 연산 처리로 생각하면 된다. 즉, Database를 갱신하는 작업 단위로 Git의 commit과 유사하다. Transaction 작업을 효율적으로 할 수 있도록 도와주는 MySQL 명령어가 있는데 다음과 같다. 아래 명령어를 사용하면 시작과 끝을 지정할 수 있고, 처리된 작업들을 되돌리고 복원할 수 있어 매우 편리하다. 만일 START TRANSACTION; 명령어 없이 작업을 하면 선언된 모든 작업이 그대로 반영되고 복원이 어려울 수 있다.

START TRANSACTION;
-- Transaction이 시작되는 지점을 설정하고, 현재까지의 상태를 백업한다.

ROLLBACK;
-- START TRANSACTION 이전 상태로 되돌린다.

COMMIT;
-- START TRANSACTION부터 선언된 transaction을 반영한다.

 

참고

- Database Systems, A Practical Approach to Design, Implementation and Management Sixth Edition

- https://danielcs.tistory.com/93