728x90
데이이터베이스 내에서 수행되는 작업의 최소 단위로 데이터베이스에 저장된 데이터의 일관성과 정확성을 지키는 것입니다. 예를들어 100만원을 송금했는데 오류가나서 상대방이 100만원을 받지 못하는 상황이 벌어지면 안되기 때문에 이 송금과 상대방이 받는 상황을 하나로 묶는것이 트랜잭션입니다.
ACID?
트랜잭션의 무결성을 유지하기 위해서는 원자성, 일관성, 고립성, 지속성이 필요합니다.
원자성(Atomicity) - 트랜잭션에 포함된 작업은 전부 수행되거나 아니면 전부 수행되지 말아야합니다.
일관성(Consistency) - 트랜잭션이 실행을 성공적으로하면 언제나 일관성 있는 데이터베이스 상태로 유지를해야합니다. 송금 전후의 금액 합이 같아야한다라는 예시를 들 수 있겠네요
고립성(Isolation) - 트랜잭션은 동시에 여러개 수행됩니다. 이때 다른 트랜잭션의 연산 작업이 끼어들지 못하도록 해야하합니다. ex) 동시성제어
지속성(Durability) - 트랜잭션이 완료되어 저장된 데이터베이스는 다른 오류의 영향을 받지 않아야합니다.
commit 과 rollback이 뭐죠?
commit은 트랜잭션 작업이 완료되었다고 확정하는 명령어입니다. rollback은 트랜잭션 과정에서 문제가 생겼을때 변경 사항을 취소하고 이전 commit의 상태로 돌리는 것 입니다.
'CS Study' 카테고리의 다른 글
[데이터베이스] Index (0) | 2024.10.14 |
---|---|
[데이터베이스] DeadLock (0) | 2024.10.14 |
[네트워크] GET vs POST (0) | 2024.10.12 |
[자료구조] Hash table (0) | 2024.10.11 |
[데이터베이스] RDB vs NoSQL (0) | 2024.10.04 |