Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

개발새발

트랜잭션이란? 본문

스프링

트랜잭션이란?

개발하는후추 2022. 8. 4. 15:44

트랜잭션은 여러개의 작업들을 하나의 그룹으로 묶어서 처리하는 처리 단위

시스템에서 사용되는 더 이상 쪼갤 수 없는 업무 최도 산위

목적

  • 데이터베이스 서버에 여러 개의 클라이언트가 동시에 엑세스 하거나 응용프로그램이 갱신을 처리하는 과정에서 중단될 수 있느 경우 등 데이터 부정합을 방지하고자 사용

트랜잭션에는 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