트랜잭션 2

트랜잭션 이해 2 - 격리, 단계, 수준

같은 데이터에 동시 접근 경쟁 상태(Race Condition) - 여러 클라이언트가 같은 데이터에 접근할 때 문제 발생 트랜잭션 격리(Isolation) - 트랜잭션을 서로 격리해서 다른 트랜잭션이 영향을 주지 못하게 함 - 트랜잭션의 격리성은 일관성과 마찬가지로 Lock을 강하게 오래 유지할수록 강화되고, Lock을 최소화할수록 약화된다. 가장 쉬운 방법은 트랜잭션을 순서대로 실행 1. 동시 접근 문제가 없음 2. 하지만 한 번에 한 개 트랜잭션만 처리하므로 성능(처리향) 저하 가능 낮은 단계의 격리성 수준에서 발생할 수 있는 현상들 1. Dirty Read - 다른 트랜잭션에 의해 수정됐지만 아직 커밋되지 않은 데이터를 읽는 것을 말한다. 2. Non-Repeatable Read - 한 트랜잭션 내..

프로그래밍/DB 2021.09.07

트랜잭션 이해

트랜잭션 여러 읽기/쓰기를 논리적으로 하나로 묶는 것 업무 처리를 위한 논리적인 작업 단위 반영은 commit, 반영하지 않을려면 rollback ACID(atomicity, consistency, isolation, durability : 원자성, 일관성, 고립성, 지속성) 데이터베이스 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 성질을 가리키는 약어 원자성(Atomicity) 트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는 것을 보장하는 능력 자금 이체는 성공할 수도 실패할 수도 있지만 보내는 쪽에서 돈을 빼 오는 작업만 성공하고 받는 쪽에 돈을 넣는 작업을 실패해서는 안된다. 일관성(Consistency) 트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태..

프로그래밍/DB 2021.09.05