Spring

Database Transaction과 데이터 동기화 -1

라우브 2021. 8. 1. 09:29

트랜잭션이란?

데이터베이스가 수행할 연산들의 논리적인 작업 단위(하나의 질의가 아닐 수 있다)

 

트랜잭션의 특징

  • 원자성(Atomictiy)
    • 트랜잭션이 데이터베이스에 모두 반영이 되거나, 하나도 반영이 안되어야 한다.( 1 or 0이어야 함. 0.5는 없다.)
    • 트랜잭션 도중 하나의 작업이라도 성공하지 못하면 모두 Rollback 되어야 함
  • 일관성(Consistency)
    • 트랜잭션이 성공한 후에도 언제나 일관성 있는 데이터베이스 상태를 유지해야 함
  • 독립성(Isolation)
    • 특정 트랜잭션이 수행 중이라면, 해당 트랜잭션이 완료될 때까지 다른 트랜잭션의 연산이 끼어들 수 없다
    • 수행 중인 트랜잭션은 완료될 때까지 다른 트랜잭션에서 수행 결과를 참조할 수 없다
  • 영속성(Durability)
    • 트랜잭션이 완료된 후에는 해당 트랜잭션의 결과가 데이터베이스에 영구적으로 반영되어야 함

 

읽기 이상현상과 고립 수준 

이상현상

고립수준 (Isolation level)

:고립수준이란 트랜잭션에서 '일관성이 없는 데이터를 어디까지 허용할 것인가?'에 대한 level을 나타낸다.

출처 : https://effectivesquid.tistory.com/entry/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-Isolation-Level

 

 

여기까지가 다음 포스팅을 위한 워밍업이다.

'Spring' 카테고리의 다른 글

Filter, Interceptor, AOP  (0) 2021.08.26
Database Transaction과 데이터 동기화 -2  (0) 2021.08.01
스프링 MVC 구성 요소  (0) 2020.08.02
DispatcherServlet이란  (0) 2020.08.02
서블릿 리스너와 서블릿 필터  (0) 2020.08.01