트랜잭션 2

database - ACID 예제 상황

예제 상황 원자성-트랜잭션을 시작했고, 업데이트를 했지만, 충돌이남모든것은 트랜잭션하나의 원자로서 완료되어야한다. 분할할 수 없다고립성- 첫 번째 세션에서 트랜잭션을 시작- 제품을 선택하고 제품의 수를 카운트-두번째 세션에서 트랜잭션을 시작  - insert into sales (pid, price,quantity) valyes(1, 999.99, 10) --insert 0 1 - uqdate products set inventory = inventory -10 where pid =1; --update 1- commit;판매, 레코드출력 - 테이블과 카운트가 일치하지 않는다- 트랜잭션을 시작하면 건들지 않도록해야한다 -> 스냅샷을 얻으면 좋다postgres =# begin transaction isola..

WEB 2024.09.21

database -트랜잭션 ACID 개념

트랜잭션 기본 내용을 정리해보겠다. 원자성-모든 트랜잭션내의 모든 쿼리는 성공해야함-하나의 실패는 트랜재션이 롤백되어야한다atomicity-하나 이상의 쿼리가 실패할 경우 모든 쿼리를 롤백시킴-트랜잭션은 하나의 단위이고 나눌수없다isolation여러 트랜잭션이 동시에 동일한 데이터를 씀읽으려고 경합하는 동시성이 발생read phenomena isolation levelsisolation -read phenomenadirty reads현재 실행중인 트랜잭션에서 발생하는 읽기 현상(flush 완전히 커밋되지 않음)Non-repeatable readsphantom reads : 아직 존재하지 않아서 실재로 읽을 수 없음lost updates 잃어버린 업데이트Non-repeatable read중복되지 않는 읽기..

WEB 2024.09.21