본문 바로가기
Computer Science/데이터베이스

트랜잭션(Transaction)

by Libi 2021. 7. 9.
반응형

이번에 배워볼 내용은 트랜잭션(Transaction)이다.

트랜잭션의 정의는 데이터베이스 시스템 또는 유사 시스템에서 하나의 논리적 기능을 정상적으로 수행하기 위한 작업의 기본단위이자 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미한다.

 

이게 무슨 말이냐면 트랜잭션은 작업의 완전성을 보장해 주는 것이다. 만약 하나의 작업이 수행되는 도중에 오류가 발생해서 원하지 않게 종료가 된다면 지금까지 수행한 작업을 반영하지 않고 원상태로 복구시켜 작업의 일부만 적용되지 않도록 하여 불완전한 상태를 만들지 않겠다는 뜻이다.

작업의 완전성을 보장해 주기 위해 트랜잭션은 ACID, 총 4가지 특성을 만족해야 한다.

첫 번째는 원자성(Atomicity)이다. 트랜잭션이 수행되는 도중에 어떠한 문제가 발생하였다면 작업의 완전성을 보장해 주기 위해 어떠한 작업 내용도 반영되지 않아야 한고 트랜잭션 전부가 취소되어야 한다. 아무런 문제가 발생하지 않았을 경우에만 모든 작업이 수행되며 데이터베이스에 반영이 돼야 한다.

두 번째는 일관성(Consistency)이다. 트랜잭션이 완료된 다음의 상태에서도 트랜잭션이 일어나기 전의 상황과 동일하게 데이터의 일관성을 보장해야 한다.

세 번째는 고립성(Isolation)이다. 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행 중에 다른 트랜잭션의 연산이 끼어들 수 없다. 또한, 수행 중인 트랜잭션은 완전히 완료될 때까지 다른 트랜잭션에서 수행 결과를 참조할 수 없다.

마지막으로 지속성(Durability)이다. 트랜잭션이 정상적으로 종료된 다음에는 영구적으로 데이터베이스에 작업의 결과가 저장되어야 한다.

트랜잭션의 상태는 다음과 같다.

 

트랜잭션은 Commit과 Rollback 2가지 연산을 가진다.

Commit 연산은 하나의 트랜잭션이 성공적으로 작업을 수행하였고 데이터베이스가 일관성 있는 상태에 있을 때, 트랜잭션이 끝났다는 것을 알려주는 연산이다.

Rollback 연산은 하나의 트랜잭션이 비정상적으로 종료되어 데이터베이스의 일관성을 깨뜨렸을 때, 작업의 완전성을 보장해 주기 위해 트랜잭션이 수행한 모든 연산을 취소하는 연산이다. Rollback 시에는 해당 트랜잭션을 재시작하거나 폐기한다.

반응형

'Computer Science > 데이터베이스' 카테고리의 다른 글

인덱스(Index)  (0) 2021.07.10
DML - JOIN  (0) 2021.07.10
키(Key)의 종류  (0) 2021.07.09
SQL의 분류와 사용법  (0) 2021.07.09
정규화(Normalization)  (0) 2021.07.09

댓글