같은 stock = 100을 믿고 계산하면 마지막 저장이 이깁니다
일반 파일 처리도 별도 잠금을 구현하면 일부 보호는 가능하지만, DBMS 수준의 트랜잭션 관리가 기본으로 제공되는 것은 아닙니다.
두 사용자가 같은 값을 읽고 각자 계산한 뒤 저장하면, 나중에 저장한 낡은 계산값이 앞선 변경을 덮을 수 있습니다. 핵심은 읽기-수정-쓰기 구간의 충돌을 조율할 규칙입니다.
일반 파일 처리도 별도 잠금을 구현하면 일부 보호는 가능하지만, DBMS 수준의 트랜잭션 관리가 기본으로 제공되는 것은 아닙니다.
DBMS는 격리 수준과 구현 방식에 따라 대기, 재시도, 충돌 감지, 원자적 갱신을 선택합니다. 핵심은 결과가 일관된 규칙을 따르게 하는 것입니다.
서로의 변경을 모른 채 낡은 값으로 저장하면 앞선 변경이 사라집니다.
부분 처리나 중간 상태가 그대로 남지 않도록 작업 경계를 정합니다.
같은 행을 고치는 요청은 보호하고, 충돌하지 않는 작업은 병렬로 진행될 수 있습니다.
항상 모든 요청을 직렬 실행한다는 뜻이 아니라, 허용할 현상을 정하는 설정입니다.
A와 B가 모두 재고 100을 읽으면 두 계산은 서로의 변경을 반영하지 못합니다.
A는 90, B는 95를 만들지만 둘 다 최신 상태를 기준으로 한 계산은 아닙니다.
DBMS는 같은 데이터에 대한 충돌을 감지하거나 순서를 정해 변경 유실을 막습니다.