1. 정의
- 트랜잭션(Treansaction)은 여러 개의
DML
명령문을 하나의 논리적인 작업 단위로 묶어서 관리하는 것으로, ALL 또는 Nothing 방식으로 작업 단위를 처리 DML
: Data Manipulation Language 데이터 베이스를 조작하는데 사용되는 SQL의 하위 집합
- 따라서, SQL 명령문들이 모두 정상적으로 처리 → 데이터베이스에 영구반영(commit)
- 하나라도 잘못된 것이 있으면 모두 취소(rollback)
2. 사용 예시
- 게시판 글 조회 시 해당 글을 조회하는 기능과 조회 수를 갱신하는 기능
- 쇼핑몰에서 상품 주문 시 주문 상품을 테이블에 등록하는 기능과 주문자의 포인트를 갱신하는 기능
- 은행에서 송금 시 송금자의 잔고를 갱신하는 기능과 수신자의 잔고를 갱신하는 기능
3. 특징
- Atomcity(원자성) : 트랜잭션이 DB에 모두 반영되거나, 전혀 반영되지 않거나를 뜻함 ( All or Nothing)
- Consistency(일관성) : 트랜잭션 작업 처리의 결과가 항상 일관되어야 한다를 뜻함 ( 데이터 타입이 반환 후와 전이 항상 동일해야함)
- Isolation(독립성) : 하나의 트랜잭션은 다른 트랜잭션에 끼어들 수 없고 마찬가지로 독립적임을 의미
- Durability(지속성) : 트랜잭션이 성공적으로 완료되면 영구적으로 결과에 반영되어야 함 (commit)