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
'기술(Tech, IT) > 데이터베이스(Database)' 카테고리의 다른 글
[DB] JOIN - OUTER JOIN (0) | 2023.02.24 |
---|---|
[DB] JOIN - INNER JOIN (2) (0) | 2023.02.23 |
[DB] JOIN - Implicit JOIN (1) (0) | 2023.02.22 |
[DB] Super Key, Candidate Key, Primary Key, Alternate Key, Foreign Key (0) | 2023.02.16 |
[DB] Functional Dependency(함수 종속성) - (1) (0) | 2023.02.09 |