Reference
🙇🏻♂️ 스스로 다시 보려고 기록하는 내용입니다
데이터 동시 접근의 문제

트랜잭션의 개념
- 데이터베이스를 조작하기 위한 하나의 논리적 단위를 이루는 일련의 연산의 집합
- 데이터베이스를 사용하여 처리하는 작업을 하나의 묶음으로 인식하여 묶음 단위로 실행되도록 정의한 개념
트랜잭션의 특징
- 다수의 연산으로 구성된 트랜잭션이 사용자에게 단일 작업처럼 다뤄지도록 ACID 특징을 준수
- ACID 특성

-> 원자성: all or nothing
트랜잭션 읽기와 쓰기
- Read(x) : 데이터베이스에서 데이터 x를 읽고, 트랜잭션이 실행되는 메모리의 변수 x에 값을 저장하는 연산
- Write(x): 트랜잭션이 실행되는 메모리에 있는 변수 x의 값을 데이터베이스에 저장하는 연산
- 계좌 A에서 B로 1,000원을 이체하는 트랜잭션

ACID 특성 유지




트랜잭션의 연산자
- 트랜잭션 실행의 연산
- Commit: 트랜잭션 연산에 의해 갱신된 데이터 항목의 값을 데이터베이스에 반영시키고 지속성을 확보하는 연산
- Rollback: 트랜잭션이 중단되기 이전까지 수행한 연산에 의해 갱신된 모든 데이터 항목의 값을 무효화하여 일관성을 확보하는 연산
트랜잭션의 5기자 상태변화

트랜잭션의 동시성
동시성 고려
- DBMS는 다수의 사용자가 데이터베이스를 공용으로 사용하기 위한 목적으로 도입
- 트랜잭션 동시 실행의 이점
- 트랜잭션 처리율과 자원 이용을 향상
- 트랜잭션의 대기 시간을 감소
- 다중 사용자 환경에서 트랜잭션의 동시 실행으로 데이터 갱신시, 일관성 훼손 문제가 발생
- 동시성 제어
- 다수의 트랜잭션이 성공적으로 동시에 실행되어도 일관성을 유지할 수 있도록 지원하는 기법
적용 트랜잭션

직렬 스케줄

병렬 스케줄

직렬 가능 스케줄

- 트랜잭션 간 연산 순서를 교환하여 트랜잭션을 직렬 스케줄과 동등하게 변환이 가능한 스케줄
- 사용한 Read와 Write 연산 교환시 상황에 따라 실행 결과와 일관성이 훼손되는 현상(충돌)이 발생

충돌 동등

충돌 직렬성

트랜잭션의 회복
회복의 개념
- 원자성을 보강하기 위해 트랜잭션 실패시 실행된 모든 연산을 실행 이전의 상태로 복원하는 기법
- 회복 불가능한 스케줄

회복가능한 스케줄

비연쇄작 스케줄
