트랜잭션???? ACID??? 이게 뭐야
Transaction은 DB를 처음 배울때 보게되는 단어이다.
사전적으로는 DB의 상태를 변화시키는 가장 작은 최소 수행(작업) 단위
쉽게는 SQL을 통하여 DB에 접근하는 행위를 뜻한다.
SELECT, INSERT, DELETE, UPDATE 등
트랜잭션은 질의가 1가지가아닌 작업의 단위에 따라 달라진다.
예시)
1. 이용자가 게시판에 글 올리기 클릭(게시판에 insert)
2. 올라간 글까지 합하여 게시판에 보여짐(글 select)
사용자는 1가지의 버튼 클릭행위를 했지만 작업은 두가지의 작업이 진행이 됨.
성질은 ACID인 총 4가지로 구성
* Atomicity : 원자성
* Consistency : 일관성
* Independency : 독립성
* Durability : 지속성
원자성.
트랜잭션이 데이터베이스에 모두 반영이 되든/안되든 둘 중 하나이다.
일관성.
트랜잭션의 처리 결과가 언제든 항상 같아야 함.
실행이 되고있는 시점에 다른 update가 실행됐다고 결과가 바뀌지않고 트랜잭션이 시작된 그 시점의 결과가 나와야한다.
독립성.
트랜잭션이 실행되는 동안에는 결과값을 다른 트랜잭션이 참조할 수 없음.
사진으로 설명을 하겠습니다.
트랜잭션의 완전 적용 = commit 하기전에는 트랜잭션 실행중이라 B_transaction이 참조 불가능.
지속성.
트랜잭션이 완료후, 영구적으로 적용이 되어야함.
ex) 계좌 잔액 : 10000원 -출금 : 5000원
계좌 잔액 : 5000원
--1시간 뒤, 계좌 잔액 : 10000원
5000원으로 반영이 되었다가 갑자기 다시 10000원이 되면 당연히 좋겠지만 DB는 이러면 큰일이 남.
트랜잭션 적용, 트랜잭션 복원
트랜잭션의 완전 종료를 DB에게 알려줌
트랜잭션중 가장 최근에 commit된것까지 복구
이미지로 이해하면 조금 더 쉬울것이다.
DB배움의 기초 of 기초인 트랜잭션과 성질을 공부해보았다.
좋은 글 잘 읽었습니다, 감사합니다.