ORACLE DB - 트랜잭션( Transaction), Commit, Rollback

공부하는치이카와·2024년 6월 13일

ORACLE DB

목록 보기
2/3
post-thumbnail

트랜잭션

사전적 의미 : 거래

컴퓨터 과학 분야 : 더이상 분할이 불가능한 업무처리의 단위를 의미

* 하나의 작업을 위해 더이상 분할 될 수 없는 명령들의 모음

한꺼번에 수행되어야 할 일련의 연산모음

ex)
1. A가 B에게 입금을 했다
2. 그러나 A만 출금이 되고 B는 입금이 되지 않았다

계좌이체 라는 행위 : 인출, 입금 두 과정으로 이루어짐
-> 이 두 과정은 동시에 성공하던지 동시에 실패해야 함
-> 하나로 묶음으로써 Atomic함을 의미
-> 이 과정을 동시에 묶는 방법이 트랜잭션

게시판을 예로 들어보자.  
1) 게시판 사용자는 게시글을 작성하고, 올리기 버튼을 누른다.
 
2) 그러면 글 올리기가 처리되고 자동으로 다시 게시판에 돌아오게 된다. 

3) 게시판에서 자신의 글이 포함된 업데이트된 게시글들을 볼 수 있다.

이러한 상황을 데이터베이스 작업으로 옮기면, 사용자가 올리기 버튼을 눌렀을 시, Insert 문을 사용하여 사용자가 입력한 게시글의 데이터를 넣는다.
그 후에, 게시판을 구성할 데이터를 다시 Select 하여 최신 정보로 유지한다.

여기서 작업의 단위는 insert문과 select문 둘다 를 합친것이다. 이러한 작업단위를 하나의 트랜잭션이라 한다.

관리자나 개발자가 하나의 트랜잭션 설계를 잘하는 것이 데이터를 다루는 것에 많은 이점이 있다.

트랜잭션 제어 명령어기능
COMMIT보류중인 모든 데이터 변경사항을 영구적으로 적용. 현재 트랜잭션 종료
ROLLBACK보류중인 모든 데이터 변경사항을 폐기.
현재 트랜잭션 종료, 직전 커밋 직후의 단계로 회귀(되돌아가기)
전체 트랜잭션을 롤백함

트랜잭션 내의 DML 명령문들은 실행이 되어 SELECT -FROM 결과에 반영되더라도, 커밋(COMMIT) 전까지는 임시적인 상태
-> 이 상태에서는 ROLLBACK을 할 경우에는 트랜잭션이 취소되고 이전 커밋 직후의 상태로 돌아가게 됨

명령어

commit;

rollback;

profile
안녕! hello! おはよう!it勉強始めました。

0개의 댓글