본문 바로가기
CS Study

[데이터베이스] Transaction

by 창브로 2024. 10. 14.
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