: 데이터베이스의 상태를 변화시키기 위해서 수행하는 작업의 단위, 간단하게 질의어들을 사용하여 데이터베이스를 접근하는 것
: 작업의 단위는 질의어 한 문장이 아님, 작업단위는 많은 질의어 명령문들을 사람이 저하는 기준에 따라 정하는 것
⇒ 게시판을 예로 들었을 때, 게시글을 작성한 후(Insert), 작성된 게시글을 확인(Select)하는 것은 하나의 작업으로 취급되며 이를 하나의 트랜잭션이라 함
특징
: 원자성(Atomicity), 일관성(Consistency), 독립성(Isolation), 지속성(Durability)
•
원자성은 트랜잭션이 데이터베이스에 모두 반영되거나 전혀 반영되지 않아아한다는 것
: 인간이 설계한 논리적인 작업의 단위로서 일처리는 작업 단위별로 이루어져야 사람이 다루기에 문제가 발생하지 않음
⇒ 트랜잭션 관리자가 관리
•
일관성은 트랜잭션의 작업 처리 결과가 항상 같아야한다는 것
: 트랜잭션이 진행되는 동안에 데이터베이스가 변경되더라도 업데이트된 데이터베이스로 트랜잭션되는 것이 아닌, 처음 작업을 시작하기 전에 참조한 데이터로 진행되야 한다는 것
⇒ 무결성 제어기가 관리
•
독립성은 둘 이상의 트랜잭션이 동시에 실행되고 있을 경우, 어느 하나의 트랜잭션도 서로의 연산에 끼어들 수 없다는 것
: 하나의 트랜잭션이 완료될때까지 다른 트랜잭션이 특정 트랜잭션의 결과를 참조할 수 없음
⇒ 병행제어 관리자가 관리
•
지속성은 트랜잭션이 성공적으로 완료된 경우, 결과는 영구적으로 반영되어야 한다는 점
⇒ 연관회복 관리자가 관리
트랜잭션의 Commit, Rollback 연산
•
Commit이란 하나의 트랜잭션이 성공적으로 끝났고, 데이터베이스가 일관성있는 상태에 있을 때, 하나의 트랜잭션이 끝났다라는 것을 알려주기위해 사용하는 연산
: 이 연산을 사용하면 수행했던 트랜잭션이 로그에 저장되며, 후에 Rollback 연산을 수행했었던 트랜잭션 단위로 하는것을 도와준다.
•
Rollback이란 하나의 트랜잭션 처리가 비정상적으로 종료되어 트랜잭션의 원자성이 깨진경우, 트랜잭션을 처음부터 다시 시작하거나, 트랜잭션의 부분적으로만 연산된 결과를
다시 취소 후에 사용자가 트랜잭션 처리된 단위대로 Rollback을 진행할 수도 있다.
동시성 제어
: 다중 사용자 환경을 지원하는 데이터베이스 시스템에서 여러 트랜잭션들이 성공적으로 동시에 실행될 수 있도록 지원하는 기능
: DBMS가 다수의 사용자 사이에서 동시에 작용하는 다중 트랜잭션의 상호간섭으로부터 Database를 보호하는 것을 의미
: 트랜잭션의 직렬화 수행을 보장
: 대부분의 DBMS는 동시성 제어 기법으로 MVCC를 사용하고 있음