본문 바로가기
DataBase

[Oracle]트랜잭션(Transaction) 관리

by 바까 2020. 4. 22.
반응형

"트랜잭션(Transaction): 데이터 처리에서 논리적으로 하나의 작업 단위를 의미."

트랙잭션 관리

 

: 데이터의 일관성을 보장한다.

오라클은 하나의 트랜잭션 역시 ALL-OR-NOTHING 방식으로 처리한다.

DML 작업을 성공적으로 처리하도록 하기 위해서 COMMIT 명령을

작업을 취소하기 위해서는 ROLLBACK 명령을 실행.

COMMIT ROLLBACK

-모든 작업들을 정상적으로 처리하겠다고 확정하는 명령어.

-트랜잭션의 처리 과정을 데이터베이스에 반영하기 위해서 변경된 내용을 모두 영구저장.

-COMMIT명령어를 수행하게 되면 하나의 트랜잭션 과정을 종료하게 된다.

-작업 중 문제가 발생하여서 트랜잭션의 처리과정에서 발생한 변경 사항을 취소하는 명령어.

-ROLLBACK은 트랜잭션으로 인한 하나의 묶음 처리가 시작되기 이전의 상태로 되돌린다.

-ROLLBACK 명령어 역시 트랜잭션 과정을 종료하게 된다.


트랜잭션의 특징(ACID)

 

Atomicity(원자성) : 모든 작업이 반영되거나 모두 롤백되는 특성.

Consistency(일관성) : 데이터는 미리 정의된 규칙에서만 수정이 가능한 특성을 의미. 숫자 컬럼에 문자열 값을 저장이 안되도록 보장.

Isolation(고립성/독립성) : A와 B 두 개의 트랜잭션이 실행되고 있을 때, A의 작업들이 B에게 보여지는 정도를 의미.

Durability(영구성/지속성) : 한 번 반영(커밋)된 트랜잭션의 내용을 영원히 적용하는 특성을 의미.


 

<트랜잭션 보충설명>

트랜잭션은 첫번째 DML문이 실행될 때 시작되어 다음 이벤트가 발생하면 종료된다.

즉, COMMIT 혹은 ROLLBACK문이 실행되는 경우 - DDL 혹은 DCL 문이 실행되는 경우 오라클이 종료 되는 경우이다.

트랜잭션이 종료되면 실행 가능한 다음 SQL 문이 다음 트랜잭션을 자동으로 시작한다. DDL 혹은 DCL 문이 실행되는 경우에는 자동으로 COMMIT(AUTO COMMIT) 되고 오라클이 종료되면 자동으로 ROLLBACK(AUTO ROLLBACK)된다.


[2020/04/22-수요일(29일차)]

반응형

댓글