쏭의 개발 블로그
[DB] 트랜잭션(Transaction) 본문
1. 트랜잭션이란
데이터베이스의 상태를 변경시키기위해 수행하는 작업 단위
💡 데이터베이스 상태 변경 = SELECT, UPDATE, INSERT, DELETE와 같은 행동
- 작업단위 : 많은 SQL 명령문들을 사람이 정하는 기준에 따라 정하는 것
- DB 작업
- A의 계좌에서 만원 차감 - UPDATE
- B의 계좌에 만원 추가 - UPDATE
- 현재 작업 단위 : 출금 UPDATE + 입금 UPDATE ⇒ 하나의 트랜잭션
- A가 B에게 만원을 송금하는 상황
- DB 작업
특징
- 데이터베이스 시스템에서 병행 제어 및 회복 작업이 처리되는 작업의 논리적 단위
- 사용자가 시스템에 대한 서비스 요구 시 시스템이 응답하기 위한 상태 변환 과정의 작업단위
- 하나의 트랜잭션은 Commit되거나 Rollback
2. 트랜잭션의 특징
원자성 (Acid)
트랜잭션이 DB에 모두 반영되거나 전혀 반영되지 않거나를 의미
- All or Nothing을 의미
- recovery subsystem의 책임
일관성 (Consistency)
트랜잭션 작업 처리의 결과가 항상 일관되어야 함
- 데이터 타입이 반환 전과 후가 항상 동일해야함
- 프로그래머의 책임
독립성 (Isolation)
하나의 트랜잭션은 다른 트랜잭션에 끼어들 수 없고 독립적임
- 트랜잭션은 다른 트랜잭션으로부터 고립된 것처럼 보여야함
- 트랜잭션끼리 간섭 불가능
- 동시성 제어 subsystem
지속성 (Durability)
트랜잭션이 성공적으로 완료되면 영구적으로 결과에 반영되어야 함
- commit이 된다면 지속성 만족 가능
- recovery subsystem의 책임
3. 트랜잭션의 commit과 rollback
Commit
- 하나의 트랜잭션이 성공적으로 끝나서 데이터베이스가 일관성있는 상태에 있음을 의미
Rollback
- 트랜잭션의 원자성이 깨질 때, 즉 하나의 트랜잭션 처리가 비정상적으로 종료되었을 때의 상태
- 트랜잭션을 다시 실행하거나 부분적으로 변경된 결과를 취소할 수 있음
4. 트랜잭션의 상태
- Active (활동) : 트랜잭션이 현재 실행중인 상태
- Failed (실패) : 트랜잭션이 실행되다가 오류가 발생하여 중단된 상태
- Aborted (철회) : 트랜잭션이 비정상 종료되어 Rollback이 수행된 상태
- Partially Committed (부분 완료) : 트랜잭션의 연산이 마지막까지 실행되고 Commit 되기 직전 상태
- Committed (완료) : 트랜잭션이 성공적으로 종료되어 Commit 연산을 실행한 후의 상태
[데이터베이스] Transaction, 트랜잭션이란?
Transaction, 트랜잭션 트랜잭션(Transaction) 이란, 데이터베이스의 상태를 변경시키기 위해 수행하는 작업 단위이다. 데이터베이스의 상태를 변경시킨다는 이야기는 SELECT, UPDATE, INSERT, DELETE 와 같은
wonit.tistory.com
DB 트랜잭션(Transaction) | 👨🏻💻 Tech Interview
DB 트랜잭션(Transaction) | 👨🏻💻 Tech Interview
DB 트랜잭션(Transaction) 트렌잭션이란? 데이터베이스의 상태를 변화시키기 위해 수행하는 작업 단위 상태를 변화시킨다는 것 → SQL 질의어를 통해 DB에 접근하는 것 작업 단위 → 많은 SQL 명령문들
gyoogle.dev
'DB' 카테고리의 다른 글
[DB] Redis (0) | 2023.02.11 |
---|---|
[DB] Transaction Isolation Level 트랜잭션 고립수준 (1) | 2023.02.01 |
[SQL] 데이터베이스 - TCL (0) | 2023.01.31 |
[DB] SQL 문법 정리 - DDL, DML (0) | 2023.01.31 |
[DB] 정규화 (0) | 2023.01.31 |