[2) 트랜잭션과 Lock]1. 트랜잭션 동시성 제어

Yu River·2022년 5월 31일
0

트랜잭션 동시성 제어

  • 동시에 실행되는 트랜잭션 수를 최대화 하면서도 CRUD 시 데이터의 무결성이 유지될 수 있도록 노력하는 것이다.
  • 여러개의 트랜잭션이 동시에 수행될 때, 데이터베이스 애플리케이션은 이들 트랜색션이 서로 간섭을 일으키는 현상을 최소화 하면서 데이터의 일관성과 무결성이 보장되도록 개발되어야 한다.

(1) 동시성 제어가 어려운 이유

  • 동시성과 일관성이 트레이드 오프 관계

1. 동시성이란?

  • 다중 사용자가 같은 테이터를 동시에 액세스할 때 일어나는 현상으로 트랜잭션들이 순차적으로 실행되는 것이 아니라, 트랜잭션을 구성하는 각각의 쿼리문들이 트랜잭션의 순서에 상관없이 동시에 실행되는 것이다.
  • 동시성을 높이기 위해 Lock의 사용을 최소화하면 읽기 일관성을 유지하기 어려워지고 데이터의 일관성을 높이려고 Lock을 많이 사용하면 동시성이 떨어지게 된다.
    • 👉 '트레이드 오프' 관계 키워드가 많이 나온다!

2. 일관성이란?

  • 자신이 발생시킨 변경사항과 다른 트랜잭션의 변경 사항(읽을 수 있는 버전만 허용)을 포함해 일관성 있는 상태로 데이터를 제공하는 것이다.

(2) ⭐️ 트랜잭션

  • 여러 개의 수정작업이 하나의 작업처럼 전부 처리되거나 아예 전부 처리가 안 되도록(ALL or Nothing)하는 일의 최소 단위로 업무 처리의 기본 단위를 정의한다.
  • ⭐️⭐️ DB 공부하면서 트랜잭션을 모른다?! >> 아주아주 헛것을 공부하고 있는 것이므로 무!조!건! 정확하게 이해하고 짚고 넘어가야 한다 !! ⭐️⭐️⭐️

⭐️⭐️⭐️⭐️⭐️ 트랜잭션의 특징(ACID)

1. 원자성(Atomicity) : 트랜잭션의 더이상 분해가 불가능한 업무의 최소단위

2. 일관성(Consistency) : 트랜잭션 실행의 결과로 데이터베이스 상태가 모순되지 않도록 하는것

3. 격리성(Isolation) : 트랜잭션이 실행 중에 생성하는 연산의 중간 결과는 다른 트랜잭션이 접근할 수 없다.

4. 영속성(Durability) : 트랜잭션이 일단 그 실행을 성공적으로 완료하면 그 결과는 데이터베이스에서 영속적으로 저장된다.

profile
도광양회(韜光養晦) ‘빛을 감추고 어둠속에서 힘을 기른다’

0개의 댓글