내 블로그 목록

2018년 7월 11일 수요일

[SQL] 트랜잭션

트랜잭션

트랜잭션 = 여러 개의 SQL 명령문들을 하나의 논리적인 작업 단위로 처리하는 것.
                  All-OR-Nothing 방식*으로 처리
                  트랜젝션은 데이터의 일관성을 유지하기 위해 고안.

*한꺼번에 모든 sql문을 처리하거나 모두 하지 않거나. 명령어 처리 도중 하나의 명령어라도 잘못 되면 전체 실행 취소해버림. 모두 실행 후에는 정상 종료.

ex) 은행 atm의 트랜젝션
현금인출 신청
  현금카드 삽입 후 본인 인증
인출금액 선택
atm에서 현금 습득
계좌에 인출 금액 만큼 차감

  만약 중간 과정에서 오류 발생이 되면, 전체 취소


//COMMIT과 ROLLBACK
COMMIT: 모든 작업(DML*)들 정상 처리 확정 명령어. 영구저장.
ROLLBACK: 트랜잭션 실행 취소 명령어. 마지막으로 COMMIT한 시점으로 돌아감.

*DML: INSERT, UPDATE, DELETE
*DDL: CREATE, ALTER, DROP, RENAME, TRUNCATE

주의!) 자동 COMMIT / 자동 ROLLBACK 되는 경우
자동 COMMIT: DDL과 DCL 명령문이 수행된 경우 자동으로 COMMIT.

자동 ROLLBACK: 정전이 발생했거나 컴퓨터 Down시(컴퓨터의 전원이 끊긴) 자동으로 ROLLBACK.

댓글 없음:

댓글 쓰기