본문 바로가기

오라클의 트랜잭션

DBA-DEV 2024. 3. 4.

트랜잭션은 데이터베이스에서 데이터를 읽거나 쓰는 일련의 작업을 말합니다. 예를 들어, 재고를 관리하는 온라인 스토어를 운영한다고 가정해 보겠습니다. 이 스토어에서는 상품을 주문하고, 재고를 갱신하며, 결제를 처리합니다. 이러한 작업은 트랜잭션의 일부입니다.

트랜잭션의 원칙

트랜잭션은 ACID라는 원칙에 따라 수행되어야 합니다. 이 원칙은 다음과 같습니다

  • 원자성(Atomicity): 트랜잭션의 모든 단계는 한 번에 모두 실행되거나 아무것도 실행되지 않아야 합니다. 예를 들어, 주문을 처리하고 재고를 갱신하는 단계가 한 번에 실행되거나 모두 실행되지 않아야 합니다.
  • 일관성(Consistency): 트랜잭션이 완료된 후에 데이터베이스는 일관된 상태여야 합니다. 예를 들어, 주문을 처리하고 재고를 갱신한 후에는 재고의 양이 올바르게 갱신되어 있어야 합니다.
  • 고립성(Isolation): 트랜잭션이 실행되는 동안 다른 트랜잭션에 의해 변경되는 데이터를 볼 수 없어야 합니다. 예를 들어, 다른 사용자가 주문을 취소하는 동안에도 여러 고객이 동시에 주문을 할 수 있어야 합니다.
  • 지속성(Durability): 트랜잭션으로 인해 변경된 데이터는 영구적으로 데이터베이스에 저장되어야 합니다. 예를 들어, 주문을 처리한 후에는 해당 주문이 데이터베이스에 영구적으로 저장되어야 합니다.

트랜잭션의 예

온라인 스토어의 주문 프로세스를 트랜잭션으로 예를 들면 다음과 같습니다

  • 사용자가 주문을 생성합니다.
  • 재고를 확인하고, 사용 가능한 경우에는 주문을 처리합니다.
  • 주문이 완료되면 재고를 갱신하고, 주문 내역을 저장합니다.

만약 주문 처리 과정 중에 문제가 발생한다면, 예를 들어 재고가 부족한 경우, 트랜잭션은 롤백되어 주문은 처리되지 않게 됩니다. 그리고 다시 주문을 시도해야 합니다. 이처럼 트랜잭션은 데이터베이스의 상태를 안전하게 관리하는 데 중요한 역할을 합니다.

'DB' 카테고리의 다른 글

오라클의 dual  (0) 2024.03.04
오라클의 SYSDATE  (0) 2024.03.04
오라클의 함수(function)  (0) 2024.03.04
오라클의 프로시저(procedure)  (0) 2024.03.04
오라클의 INSERT  (0) 2024.03.04

댓글