-
데이터베이스에서 수행되는 작업의 단위인 트랜젝션(transaction)의 개요DATABASE 2018. 8. 28. 22:16반응형
트랜젝션(Transaction)의 정의
- 데이터베이스에서 Read 와 Write 의 연산을 한번에 수행하는 단위를 말함.
- 데이터베이스에서 수행되는 작업의 논리적 단위를 말함.
트랜젝션의 특징 - ACID
- 원자성(
A
tomicity) : All or Nothing - 일관성(
C
onsistency) : 동일한 결과를 얻는다. - 고립성(
I
solation) : 수행중인 트랜젝션에서 생성되는 연산 결과에 다른 트랜젝션이 접근 할 수 없다. - 영속성(
D
uration) : 성공으로 완료된 트랜젝션의 결과를 데이터베이스에 영구적으로 기록한다.
트랜젝션의 격리성
- 트랜젝션의 격리 수준에 따라 바람직하지 않는 세 가지 읽기 연산이 발생할 수 있다.
현상 설명 dirty read - 아직 커밋되지 않는 변경값을 읽는 것
- 트랜젝션 A가 x 를 x' 로 변경 한 후 트랜젝션 B 가 x' 를 읽은 상태에서 트랜젝션 A 가 롤백하는 경우를 말한다.non-repeatable read - 동일 트랜젝션에서 동일 쿼리를 조회하였을때 결과가 다르게 나타나는 것
- 트랜젝션 A가 x 를 여러번 조회하는 중에 트랜젝션 B 가 x 를 x' 로 변경하여 트랜젝션 A 에서 x 의 값이 x' 로 변경되는 경우를 말한다.phantom read - 트랜젝션 A가 레코드를 여러번 조회하는 중에 트랜젝션 B가 새로운 레코드를 추가하여, 이전에는 존재하지 않았던 데이터가 트랜젝션 A에 갑자기 나타나는 경우를 말한다. - 위에서 말한 바람직하지 않는 세가지 읽기 연산은 아래의 격리수준(isolation level)에 따라 나타날 수 있다.
격리수준 dirty read non-repeatable read phantom read serializable N N N repeatable read N N Y read committed N Y Y read uncommitted Y Y Y 끝.
반응형'DATABASE' 카테고리의 다른 글
직렬화가능성(serializability)을 보장하기 위한 동시성 제어의 개요 (0) 2018.08.25 데이터 무결성 보장을 위한 데이터 회복의 개요 (0) 2018.08.25 데이터 독립성 (0) 2018.08.24 오라클 DB 에서 트리거로, UPDATE CASCADE 흉내내기 (0) 2016.09.18 Apache Common DBCP removeAbandoned 옵션 설명 (0) 2014.10.21