⛏️트랜잭션(Transaction)이란?
트랜잭션(Transaction) 이란, 데이터베이스의 상태를 변경시키기 위해 수행하는 작업 단위이다
데이터베이스의 상태를 변경시킨다는 이야기는 SELECT, UPDATE, INSERT, DELETE 와 같은 행동을 뜻한다
이런 트랜잭션은 상황에 따라 여러 개가 만들어질 수 있다
그 하나의 트랜잭션은 Commit (저장) 되거나 Rollback (철회)될 수 있다
그 이유는 무엇일까?
예를 들어 우리가 문제를 풀면 포인트로 변경된다고 가정해보자
A, B, C, D 가 문제를 풀어 각각 100 Point 씩 얻었고 이를 DB에 저장하려 한다
A 저장 완료, B 저장 완료, C 저장 완료, D 저장 실패
이런 상황이 오게 된다면 잘못된 처리이므로 다시 저장을 수행해야 하는데, A, B, C는 그 전에 이미 저장이 완료되었기 때문에 다시 저장을 시작하면 200점이 저장된다
이런 문제점들을 위해서 트랜잭션은 Commit 과 Rollback 을 이용한다
⛏️트랜잭션의 특징
트랜잭션에는 4가지의 특징이 존재한다
- 원자성(Atomicity)
- 일관성(Consistency)
- 독립성(Isolation)
- 지속성(Durability)
- 원자성
원자성은 트랜잭션이 DB에 모두 반영되거나, 전혀 반영되지 않거나를 뜻한다
All or Nothing을 생각하면 된다
- 일관성
일관성은 트랜잭션 작업 처리의 결과가 항상 일관되어야 한다를 뜻한다
즉, 데이터 타입이 반환 후와 전이 항상 동일해야 한다
- 독립성
독립성은 하나의 트랜잭션은 다른 트랜잭션에 끼어들 수 없고 마찬가지로 독립적임을 의미한다
즉, 각각의 트랜잭션은 독립적이라 서로 간섭이 불가능하다
- 지속성
지속성은 트랜잭션이 성공적으로 완료되면 영구적으로 결과에 반영되어야 함을 뜻한다
보통 commit 이 된다면 지속성은 만족할 수 있다
⛏️트랜잭션의 Commit 과 Rollback
- Commit
하나의 트랜잭션이 성공적으로 끝나서 데이터베이스가 일관성있는 상태에 있음을 의미한다
- Rollback
트랜잭션의 원자성이 깨질 때, 즉 하나의 트랜잭션 처리가 비정상적으로 종료 되었을 때의 상태를 뜻한다
Rollback 이 이뤄진다면 트랜잭션을 다시 실행하거나 부분적으로 변경된 결과를 취소할 수 있다
'🎈 > 면접 준비' 카테고리의 다른 글
[CS 지식] 인덱스의 의미 (0) | 2024.09.04 |
---|---|
[CS 지식] 오버로딩과 오버라이딩의 차이 (0) | 2024.09.04 |
[CS 지식] 접근제어자, 접근제한자(public, private, protected, default) (0) | 2024.06.26 |
[CS 지식] 오라클과 MySQL의 차이점 (0) | 2024.06.26 |
[CS 지식] 프로세스와 스레드의 차이점 (0) | 2024.06.16 |