트랜잭션(Transaction)이란
: '상품 주문 후 주문 정보 조회'
-> 사용자가 상품 주문시, 주문 정보 INSERT 한 후,
주문 내역을 다시 SELECT하여 보여줌
-> 여기서 작업 단위 : INSERT문과 SELECT문을 합친 것
트랜잭션의 특징 (ACID)
-> 하나라도 실패시 아무것도 반영 안됨, 모두 성공해야 전체 반영
-> 작업 처리 결과가 항상 일 관성 있어야 함
-> 트랜잭션 진행 중에 db 변경이 되더라도 변경된 db로 트랜잭션이 진행되는게 아니라 처음 트랜잭션 시작시 참조한 db로 진행
-> 두개 이상의 트랜잭션 동시 실행시, 다른 트랜잭션의 연산에 끼어들 수 없음
-> 하나의 특정 트랜잭션이 완료될 때까지 다른 트랜잭션이 특정 트랜잭션의 결과를 참조할 수 없음
-> 트랜잭션이 성공적으로 완료시, 결과는 영구적으로 반영되어야 함
트랜잭션의 Commit, Rollback 연산
-> commit 시, 수행헀던 트랜잭션이 로그에 저장
-> commit 된 결과를 최종 db에 반영
트랜잭션 사용법
begin transaction;
select * from tb_user;
update tb_user set di=null where id='aa';
select * from tb_user where id='aa'; // 변경값 확인
rollback; // 변경 취소
commit; // 변경 적용