세션이 DML을 수행하면 트랜잭션이 시작되고 종료 시점은 사용자가 결정합니다.
네 DBMS 모두 트랜잭션 제어 문법은 갖추고 있지만, 실제 차이는 기본 커밋 경계, DDL을 같은 트랜잭션에 넣을 수 있는지, 그리고 고급 확장 기능이 어디까지 열리는지에서 갈립니다.
네 DBMS 모두 COMMIT, ROLLBACK, 중간 복구용 SAVEPOINT 계열을 지원합니다. 따라서 학습 포인트는 “기능이 있나?”보다 “어디서 경계가 열리고 닫히나?”입니다.
트랜잭션 경계의 기본값
세션이 DML을 수행하면 트랜잭션이 시작되고 종료 시점은 사용자가 결정합니다.
START TRANSACTION으로 여러 작업을 하나의 단위로 묶습니다.
명시적으로 블록을 열어야 여러 문장을 같은 일관성 단위로 다룹니다.
필요한 작업만 묶어 커밋 시점을 세밀하게 운영할 수 있습니다.
배포와 스키마 변경의 운영 차이
DDL은 일반 업무 트랜잭션과 분리해서 설계해야 해 배포 롤백 전략이 제한됩니다.
데이터 변경과 스키마 변경을 한 번에 되돌리는 흐름에는 주의가 필요합니다.
DDL과 데이터 변경을 함께 검증하고 실패 시 같은 트랜잭션 안에서 되돌릴 수 있습니다.
배포 작업 전체를 하나의 트랜잭션 단위로 관리하기에 유리합니다.
읽기 전용, 분산 TX, 독립 TX
SET TRANSACTION, 2PC, 자율 트랜잭션으로 현재 TX와 분리된 기록까지 처리합니다.
읽기 전용은 트랜잭션 시작 옵션으로, 분산 트랜잭션은 XA로 다룹니다.
BEGIN READ ONLY와 PREPARE TRANSACTION으로 고급 제어를 제공합니다.
SNAPSHOT 격리와 MS DTC가 운영 확장의 중심입니다.