[sql] 트랜잭션과 롤백

관계형 데이터베이스에서 트랜잭션(transaction)은 하나 이상의 데이터베이스 조작 명령을 묶어서 한 묶음으로 처리하는 것을 말합니다. 예를 들어, 고객 정보를 업데이트하고 주문 내역을 삽입하는 두 가지 작업을 한 묶음으로 처리할 수 있습니다.

트랜잭션은 보통 다음과 같은 네 가지 속성을 갖습니다: 원자성(Atomicity), 일관성(Consistency), 고립성(Isolation), 지속성(Durability).

트랜잭션을 실행하는 도중 문제가 발생하면, 롤백(rollback)이 발생할 수 있습니다. 이는 트랜잭션이 부분적으로 실행되었거나, 실패한 경우에 해당 트랜잭션을 취소하고 이전 상태로 돌리는 것을 의미합니다.

다음 SQL 예시를 통해 트랜잭션과 롤백의 역할을 이해할 수 있습니다:

BEGIN TRANSACTION;

UPDATE Customers
SET Balance = Balance - 100
WHERE CustomerID = 123;

INSERT INTO TransactionLog (CustomerID, Amount, Type)
VALUES (123, 100, 'Debit');

COMMIT;

이 예시에서, BEGIN TRANSACTION은 트랜잭션을 시작하고, COMMIT은 트랜잭션을 완료하고 변경 내용을 영구적으로 적용하는 것을 나타냅니다. 하지만 만약 INSERT 문에서 오류가 발생한다면, 트랜잭션은 롤백되어 이전 상태로 복원됩니다.

트랜잭션과 롤백은 데이터베이스의 무결성과 일관성을 유지하는 데 중요한 역할을 합니다.

더 많은 정보를 원하시면 Oracle 사의 트랜잭션 관리 문서 를 참고하세요.