트랜잭션(Transaction)이란, 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 단위를 말한다.
데이터베이스에 접근하는 방법은 쿼리(SELECT,INSERT,DELETE,UPDATE)를 이용하여 데이터베이스를 접근하는 것을 의미한다.
작업의 단위는 한문장이아닌 여러개의 쿼리를 하나로 묶는 단위를 말한다.
트랜잭션과 관련된 일이 모두 수행되었거나, 전혀 반영되지 않았다 둘중 하나여야 함을 뜻한다.
트랜잭션 단위로 데이터를 처리하지않으면, 설계한사람이 시스템을 이해하기 힘들며, 오류가생길 때 원인을 찾기 힘들어 대처하기 힘들다.
일관성은 허용된 방식으로만 데이터를 변경해야하는 것을 의미합니다.
즉, 트랜잭션의 작업 처리 결과가 항상 일관성이 있어야함을 의미합니다.
독립성은 둘이상의 트랜잭션이 동시에 실행할 경우 서로 끼어들지 못하는 것을 말합니다.
이는 복수의 병렬 트랜잭션이 서로 격리되어 마치 순차적으로 실행되는 것처럼 작동되어야하고, 데이터베이스는 여러 사용자가 같은 데이터에 접근할 수 있어야합니다.
독립성은 여러개의 격리 수준으로 나누어서 보장합니다.
성공적으로 수행된 트랜잭션은 영원히 반영되는 것을 의미합니다.
이는 데이터베이스에 시스템장애가 나타나도 원래되로 복구되는 회복기능이 있어야하며, 이를 위해 데이터베이스는 체크섬, 롤백, 저널링을 제공합니다.
저널링 : 커밋하기전에 변경사항을 로깅하는것, 변경사항에대한 로그를 남기는 것
체크섬 : 중복검사의 한종류이며 오류정정을 통해 자료를 보호
하나의 트랜잭션이 성공적으로 끝났고, 데이터베이스가 일관성있는 상태에 있을 때, 하나의 트랜잭션이 끝났다라는 것을알려주기위해 사용하는 연산이다.
이 연산을 사용하면 수행했던 트랜잭션이 로그에 저장되며, 후에 Rollback 연산을 수행했었던 트랜잭션단위로 하는것을 도와준다.
하나의 트랜잭션 처리가 비정상적으로 종료되어 트랜잭션의 원자성이 깨진경우, 트랜잭션을 처음부터 다시 시작하거나, 트랜잭션의 부분적으로만 연산된 결과를 다시 취소시킨다.
후에 사용자가 트랜잭션 처리된 단위대로 Rollback을 진행할 수도 있다.