commit되지 않은 데이터도 읽음. SELECT 문장을 수행하는 경우 해당 데이터에 Shared Lock이 걸리지 않는 Level이다
가장 낮은 수준의 transaction 수준. dirty read 발생 가능
commit된 것만 읽음. 이 Level에선 SELECT 문장이 수행되는 동안 해당 데이터에 Shared Lock이 걸린다.
Nonrepeatable read 발생가능. 즉, 동일한 transaction 내에서 반복되는 쿼리에 다른 값이 나올 수 있다. 첫번째 select와 두번째 select 사이에 다른 transaction으로 update가 일어났을 때 그러하다. 조회 건이 줄어들 수 있을 것 같다.
트랜잭션이 완료될 때까지 SELECT 문장이 사용하는 모든 데이터에 공유잠금을 유지하여 (읽기 Lock) , 트랜잭션이 종료될 때까지 다른 사용자가 해당 행을 수정하지 못하게 한다. 여러번 데이터를 읽어도 같은 값이 유지되도록 함. 그러나 같은 조건을 만족하는 새로운 row가 다른 트랜잭션에서 insert로 생성거나 update되어서 commit되었을 시 읽어지는 phantom read 발생. 조회건이 들어날 수 있다.
가장 높은 격리 수준으로 이 격리수준을 사용하는 메소드는 DB에 배타적 쓰기락을 얻음으로써 transaction이 종료될 때까지 조회,수정,입력 데이터로부터 다른 transaction의 처리를 막는다.