데이터베이스에 삽입, 수정, 삭제 등의 작업을 할 때
여러 개의 작업들을 하나의 단위로 진행해야 하는 경우가 있다.
개별적으로 수행되는 것이 아니라 묶어서 연산을 진행하고 싶은 겨웅에
트랜잭션 사용.
DBMS에서 데이터를 다루는 논리적인 작업의 단위
(작업 단위를 여러개로 묶어서 실행시킬 수 있음)
All / Nothing
현업에서는 여러 트랜잭션이 동시에 수행되곤 한다.
일관성과 고립성을 유지하기 위해서 값에 동시에 접근하지 않도록 하는 방법들을 동시성 제어라고 한다.
-> 동시에 update 되는 것을 방지
커밋을 수행하면, 하나의 트랜잭션 과정 종료.
작업 내용을 실제 디비에 저장한다.
즉, 이전 데이터가 완전히 업데이트 되고, 모든 사용자가 변경한 데이터의 결과를 볼 수 있음.
트랜잭션으로 인한 하나의 묶음 처리가 시작되기 이전의 상태로 되돌림.
작업내용 취소.
이전 커밋한 곳까지만 복구하게 됨.
트랜잭션을 통해
데이터의 무결성을 보증할 수 있게 된다.
데이터의 정확성과 일관성을 유지하고 보증하는 것을 의미
영구적인 변경 전에 데이터의 변경 사항을 확인할 수 있으며
논리적으로 연관된 작업을 그룹화 할 수 있게 트랜잭션을 사용할 수 있다.