본문 바로가기
수업 내용/[DB] 오라클

11. 트랜잭션 (transaction)

by 프롯 2023. 4. 25.

트랜잭션 (transaction)

데이터 처리의 한 단위

오라클에서 발생하는 여러개의 SQL 명령문(쿼리)들을 하나의 논리적인 작업 단위로 처리하는 과정

 

하나의 트랜잭션은 All-or-Nothing 방식으로 처리

여러개의 명령어의 집합이 정상적으로 처리되면 정상 종료, 하나라도 잘못되었다면 전체 취소 

 

데이터의 일관성을 유지하면서 안정적으로 데이터를 복구시키기 위해 도입

 

 

ex)

1. 현금인출을 하겠다고 기계에게 알려준다.

2. 현금카드를 넣어서 본인인증을 받는다.

3. 인출할 금약을 선택하면 현금인출기는 돈을 내어준다.

4. 계좌에서 인출된 금액만큼 잔액에서 차감한다.

 

이러한 과정을 하나의 작업 단위로 묶은 것

 

 

 

 

트랜잭션 제어를 위한 명령어

commit : 작업을 정상적으로 처리하겠다고 확정하는 명령어, 영구 저장

rollback : 변경사항을 취소하는 명령어

savepoint : 현재의 트랜잭션을 작게 분활하는 명령어

 

commit - commit 사이가 하나의 트랜잭션

rollback시 이전 commit 시점으로 돌아간다.

중간에 savepoint 명령어를 시점을 지정하고, rollback_to_savepoint 로 저장된 시점으로 rollback 할 수 있다.

 

형식

commit;

rollback;

savepoint label_name;

rollback to label_name;

 

 

 

Auto commit

DB 사용자가 트랜잭션 명령어를 명시적으로 수행시키지 않더라도 특정 상황에서 자동 커밋, 자동 롤백 발생

DML, DDL 명령어 사용시 자동으로 커밋된다.

 

 

'수업 내용 > [DB] 오라클' 카테고리의 다른 글

[DB 오라클] 14. 시퀀스  (0) 2023.04.27
[DB 오라클] 13. 뷰 ( view)  (0) 2023.04.27
12. 제약조건  (0) 2023.04.25
10. DML  (0) 2023.04.25
0. 데이터베이스 (DB)  (0) 2023.04.21