[DB] 트랜잭션 락(Transaction Lock)(+ 동시성 제어)
·
Computer Science/데이터베이스
트랜잭션이란 한꺼번에 수행되어야 하는 업무 단위를 의미한다.트랜잭션에 대한 내용은 해당 포스팅에서 확인 > 2025.08.22 - [CS/데이터베이스] - [DB] 트랜잭션(Transaction) 동시성 제어트랜잭션 속성 중 하나인 일관성은 트랜잭션 전후로 무결성을 만족해야 한다.하지만 무결성을 엄격히 지킬수록 여러 트랜잭션이 동시에 DB 접근하는 것은 오히려 어려워진다. 따라서 여러 트랜잭션이 동시에 실행되더라도 데이터의 일관성을 유지할 수 있도록 트랜잭션의 실행을 제어하는 것을 동시성 제어라고 한다.동시성 문제로 인한 이상 현상은 해당 포스팅에서 확인 >2025.09.19 - [Computer Science/데이터베이스] - [DB] 트랜잭션 고립 수준(Transaction Isolation Leve..
[DB] 트랜잭션 고립 수준(Transaction Isolation Level)
·
Computer Science/데이터베이스
트랜잭션에 대한 내용은 해당 포스팅에서 확인 > 2025.08.22 - [CS/데이터베이스] - [DB] 트랜잭션(Transaction) 데이터베이스에서 트랜잭션은 고립성(Isolation)을 보장해야 한다.다시 말해, 여러 트랜잭션이 동시에 실행되더라도 각 트랜잭션의 결과는 독립적으로 유지되어야 한다.만약 이를 지키지 않고 여러 트랜잭션이 동시에 같은 데이터에 접근하게 되면, 다음과 같은 문제가 발생할 수 있다. 동시성 문제(이상 현상)Dirty Read다른 트랜잭션이 커밋하지 않은 트랜잭션의 중간 값을 읽어 오는 문제이다. 예를 들어, 트랜잭션 A와 트랜잭션 B를 동시에 실행했다고 가정하자.트랜잭션 A는 몇몇의 데이터를 update를 수행하였다.트랜잭션 B는 update한 데이터를 조회하였다.트랜잭..
[DB] 트랜잭션(Transaction)
·
Computer Science/데이터베이스
트랜잭션(Transaction)의 정의트랜잭션(Transaction)이란 "하나의 연속적인 업무 단위"를 의미한다. 예를 들어 A 고객이 B 고객에게 100만원을 이체하려고 한다고 가정하자.해당 상황을 단계별로 나누어본다면,1) A 고객의 잔액이 100만원 이상인지 확인해야 한다.2) 100만원 이상이면, A 고객의 잔액을 100만원 차감한다.3) B 고객의 잔액에 100만원을 더해준다. 이 모든 과정을 통틀어 트랜잭션이라고 한다.트랜잭션은 한꺼번에 수행되어야 하며, 중간에 일련의 과정이 삭제되거나 삽입될 수 없다. 트랜잭션 수행 방식은 다음과 같다.START TRANSACTION; -- 1. a 계좌의 잔액이 100만원 이상이면 -- 2. a 계좌의 잔액을 100만원 차감하여 update -..