파게로그

TRANSACTION, COMMIT, ROLLBACK 본문

콤퓨타 왕기초/Oracle DB

TRANSACTION, COMMIT, ROLLBACK

파게 2021. 3. 12. 02:56

Transaction: 업무 실행단위, 논리 명령단위, 개념상의 명령단위

 

업무적인 단위

계좌이체

이벤트 게시글 등록

 

물리적인 명령어 단위

update (송신자)

update (수신자)

 

insert

update

 

두 업데이트가 모두 완전하게 실행되거나, 또는 아예 실행되지 않아야 한다.

 

1. 현재 세션을 위한 임시저장소에서 테스트

2. 그 동안 다른 세션이 건드리지 못하도록... LOCK & UNLOCK -> COMMIT & ROLLBACK

 

같은 서버에 대해 같은 계정이라 하더라도, 두 개의 세션이 열렸을 때..

한 군데서 INSERT를 했어도 다른 데서 SELECT를 통해 확인할 수 없다.

왜냐면 임시저장소에서만 테스트되기 때문. (임시 테이블스페이스가 이 떄 쓰이는 거)

다른 사용자가 봐도 문제 없을 것 같다고 여겨지면... commit; 실행

 

rollback; 실행시 동작?

마지막 commit 시점으로 돌아가겠지.

 

commit/rollback 이전에 다른 세션에서 뭔가를 시도하면 -> 락이 걸려서 대기

커밋 완료 후 업데이트되거나 함

 

'콤퓨타 왕기초 > Oracle DB' 카테고리의 다른 글

연산자(패턴비교)  (0) 2021.03.12
연산자(산술, 비교, 관계)  (0) 2021.03.12
테이블 수정  (0) 2021.02.23
테이블 생성, Oracle DB 자료형  (0) 2021.02.22
오라클 계정  (0) 2021.02.22
Comments