| 특성 | 영문 | 설명 |
|---|---|---|
| 원자성 | atomicity | 트랜잭션에 정의된 연산은 모두 실행되던지 or 모두 실행되지 않던지 (All or Nothing) |
| 일관성 | consistency | 트랜잭션 실행 전 데이터베이스 데이터에 잘못된 것이 없다면, 트랜잭션 실행 후에도 잘못된 데이터가 없어야한다. |
| 고립성 (격리성) | isolation | 트랜잭션이 실행되는 도중 다른 트랜잭션의 영향을 받아 잘못된 결과를 만들어서는 안된다. |
| 지속성 | durability | 트랜잭션이 성공적으로 수행되면 갱신된 데이터는 영구적으로 저장된다. |
✅ Oracle vs SQLServer에서의 트랜잭션
Oracle에서는 DDL 수행시 자동 Commit 된다. (SQLServer는 자동 X)
begin transactionbegin tran도 가능commitcommit transaction도 가능rollbackrollback transaction도 가능begin transaction 시점까지 모두 롤백하고 종료한다.save transaction 이름-- [Oracle]
-- 트랜잭션 시작
begin transaction;
-- sp1 저장점 설정
savepoint sp1;
update ...;
-- sp2 저장점 설정
savepoint sp2;
delete ...;
-- sp2 저장점 롤백 (delete 롤백됨)
rollback to sp2;
-- 커밋 (트랜잭션 종료)
commit;
-- [SQL Server]
-- 트랜잭션 시작
begin transaction;
-- sp1 저장점 설정
save transaction sp1;
update ...;
-- sp2 저장점 설정
save transaction sp2;
delete ...;
-- sp2 저장점 롤백 (delete 롤백됨)
rollback transaction sp2;
-- 커밋 (트랜잭션 종료)
commit;