개발새발
트랜잭션이란? 본문
트랜잭션은 여러개의 작업들을 하나의 그룹으로 묶어서 처리하는 처리 단위
시스템에서 사용되는 더 이상 쪼갤 수 없는 업무 최도 산위
목적
- 데이터베이스 서버에 여러 개의 클라이언트가 동시에 엑세스 하거나 응용프로그램이 갱신을 처리하는 과정에서 중단될 수 있느 경우 등 데이터 부정합을 방지하고자 사용
트랜잭션에는 4가지의 특징
원자성
- 원자성은 트랜잭션이 DB에 모두 반영되거나, 전혀 반영되지 않거나
- All or Nothing을 생각
일관성
- 일관성은 트랜잭션 작업 처리의 결과가 항상 일관되어야 한다
- 즉, 데이터 타입이 반환 후와 전이 항상 동일해야 한다
독립성
- 독립성은 하나의 트랜잭션은 다른 트랜잭션에 끼어들 수 없고 마찬가지로 독립적임을 의미
- 즉, 각각의 트랜잭션은 독립적이라 서로 간섭이 불가능하다
지속성
- 지속성은 트랜잭션이 성공적으로 완료되면 영구적으로 결과에 반영되어야 한다
- 보통 commit 이 된다면 지속성은 만족할 수 있다
Commit
- 하나의 트랜잭션이 성공적으로 끝나서 데이터베이스가 일관성있는 상태
Rollback
- 트랜잭션의 원자성이 깨질 때, 즉 하나의 트랜잭션 처리가 비정상적으로 종료 되었을 때의 상태
- Rollback 이 이뤄진다면 트랜잭션을 다시 실행하거나 부분적으로 변경된 결과를 취소할 수 있다
트랜잭션 5가지의 상태
Active
- 트랜잭션이 현재 실행 중인 상태
Failed
- 트랜잭이 실행되다 오류가 발생해서 중단된 상태
Aborted
- 브랜잭션이 비정상 종료되어 Rollback 이 수행된 상태
Partially Committed
- 트랜잭션의 연산이 마지막까지 실행되고 Commit이 되기 직전 상태
Committed
- 트랜잭션이 성공적으로 종료되어 Commit 연산을 실행한 후의 상태
'스프링' 카테고리의 다른 글
서블릿(Servlet) (0) | 2022.09.11 |
---|---|
#spring security (0) | 2022.08.05 |
ORM이란? (0) | 2022.08.04 |
# REST Client (0) | 2022.08.04 |
JPA (0) | 2022.08.04 |
Comments