목록serializability (2)
변수의 기록

트랜잭션 스케줄은 왜 회복 가능해야 할까?Recoverable / Cascadeless / Strict Schedule 완전 정리데이터베이스는 동시성(Concurrency)을 보장해야 하지만, 동시에 발생하는 트랜잭션이 모두 문제없이 끝나는 것은 아닙니다. 일부 트랜잭션은 롤백되기도 하고, 이로 인해 다른 트랜잭션까지 영향을 받을 수 있습니다.따라서 DBMS는 단순히 serializable한 스케줄만을 고려해서는 안 되며, rollback 상황에서도 데이터 정합성을 유지할 수 있는 스케줄, 즉 **회복 가능한 스케줄(Recoverable Schedule)**을 반드시 보장해야 합니다.1. 스케줄(Schedule) 복습스케줄이란, 여러 트랜잭션의 연산(read/write)이 실제로 어떤 순서로 실행되었는지..
트랜잭션이 동시에 실행될 때, 우리는 무엇을 보장해야 할까?데이터베이스에서 여러 사용자가 동시에 트랜잭션을 수행한다면 어떤 일이 벌어질까요?예를 들어, 두 명의 사용자가 동시에 같은 은행 계좌에 접근해 금액을 업데이트한다고 가정해봅시다.T1: 1000원을 출금T2: 2000원을 입금정상이라면 결과는 잔고 +1000원이 되어야겠지만, 두 트랜잭션이 얽혀 실행되면 예기치 못한 결과가 발생할 수 있습니다. 이처럼 트랜잭션의 실행 순서는 단순히 성능을 넘어서 데이터의 정확성과 직결됩니다.스케줄(Schedule)이란?스케줄은 여러 트랜잭션이 동시에 실행될 때, 각 연산(읽기, 쓰기)이 실제로 어떤 순서로 실행되었는지를 기록한 것입니다.중요한 점은:각 트랜잭션 내부의 연산 순서는 바뀌지 않지만여러 트랜잭션이 뒤섞여..