트랜잭션은 데이터베이스에서 수행되는 작업의 논리적인 단위를 의미합니다. 이는 데이터베이스에서 데이터를 읽거나 쓸 때 데이터의 무결성을 보장하고, 일관성을 유지하기 위해 필요한 개념입니다. ACID는 트랜잭션이 안전하게 수행되는 것을 보장하기 위한 특성들을 나타냅니다.
트랜잭션의 특성 (ACID)
- 원자성(Atomicity):
- 트랜잭션 내의 모든 작업은 원자적(atomic)으로 간주됩니다. 즉, 모든 작업은 완전히 수행되거나 전혀 수행되지 않아야 합니다. 트랜잭션의 모든 단계가 성공하면 트랜잭션을 커밋하고, 하나라도 실패하면 롤백하여 트랜잭션을 취소합니다.
- 일관성(Consistency):
- 트랜잭션 전후의 데이터베이스 상태는 항상 일관되어야 합니다. 트랜잭션의 실행 전과 후에 데이터베이스는 일관된 제약 조건을 유지해야 합니다. 이는 데이터베이스의 무결성을 보장합니다.
- 고립성(Isolation):
- 여러 트랜잭션이 동시에 실행될 때 각 트랜잭션은 다른 트랜잭션의 영향을 받지 않고 독립적으로 실행되어야 합니다. 트랜잭션 간의 간섭이나 변경 사항이 없도록 격리되어야 합니다.
- 지속성(Durability):
- 트랜잭션이 성공적으로 완료되면 그 결과는 영구적으로 저장되어야 합니다. 시스템 장애 또는 전원 이상과 같은 문제가 발생해도 트랜잭션의 결과는 보존되어야 합니다.
COMMIT과 ROLLBACK의 사용법
- COMMIT: 트랜잭션의 모든 작업이 성공적으로 완료되었을 때, 데이터베이스에 변경 내용을 영구적으로 저장하는 명령입니다. 트랜잭션을 완료하고 데이터베이스를 일관된 상태로 만들기 위해 사용됩니다.
COMMIT;
ROLLBACK: 트랜잭션 중에 오류가 발생하거나 트랜잭션을 취소하고 이전 상태로 되돌리는 명령입니다. 트랜잭션의 일부 또는 전체 작업을 취소하고 데이터베이스를 이전 상태로 되돌리기 위해 사용됩니다.
ROLLBACK;
이러한 COMMIT과 ROLLBACK 명령은 트랜잭션의 안정성을 보장하고 데이터베이스의 일관성을 유지하는 데 중요한 역할을 합니다. 실패한 트랜잭션은 롤백하여 이전 상태로 되돌릴 수 있으며, 성공한 트랜잭션은 커밋하여 영구적으로 데이터베이스에 반영할 수 있습니다.
'sql' 카테고리의 다른 글
인덱스와 뷰 (0) | 2024.03.02 |
---|---|
서브쿼리(Subquery) (0) | 2024.03.02 |
조인(JOIN) (0) | 2024.03.02 |
날짜 및 시간함수 : DATE0, TIMEO, TIMESTAMPO (0) | 2024.03.02 |
숫자함수 : SUMO, AVGO, COUNTO, MINO, MAXO (0) | 2024.03.02 |