본문 바로가기
웹개발/데이터베이스

[오라클]트랜잭션(transaction)

by 지구별 여행자 임탱 2024. 2. 26.
728x90

오라클에서 트랜잭션(Transaction)은 하나 이상의 데이터베이스 작업을 묶어서 논리적인 작업 단위로 처리하는 개념입니다. 트랜잭션은 데이터베이스의 일관성과 안정성을 유지하기 위해 중요한 역할을 합니다. 

ACID 원칙:
  - 원자성(Atomicity): 트랜잭션은 작업의 모든 단계가 완전히 수행되거나 전혀 수행되지 않아야 합니다. 중간 단계의 실패나 오류가 발생하면 트랜잭션 전체가 롤백되어 이전 상태로 복구됩니다.
  -  일관성(Consistency): 트랜잭션은 정의된 규칙과 제약 조건에 따라 데이터베이스의 일관성을 유지해야 합니다. 트랜잭션 전후에 데이터베이스는 일관된 상태여야 합니다.
  -  격리성(Isolation): 동시에 실행되는 여러 트랜잭션들이 서로에게 영향을 주지 않고 독립적으로 수행되어야 합니다. 한 트랜잭션이 다른 트랜잭션의 작업 결과를 참조하거나 변경할 수 없습니다.
  -  지속성(Durability): 트랜잭션이 성공적으로 완료되면 그 결과는 영구적으로 저장되어야 합니다. 시스템 장애나 손상이 발생해도 데이터의 일관성과 지속성이 보장되어야 합니다.

 

트랜잭션의 단계:
  -  시작(Start): 트랜잭션이 시작되는 단계입니다.
  -  작업(Work): 트랜잭션 내에서 데이터베이스 작업(INSERT, UPDATE, DELETE 등)이 수행되는 단계입니다.
  -  완료(Commit): 트랜잭션이 성공적으로 완료되었고, 변경된 데이터가 영구적으로 저장되어야 함을 나타내는 단계입니다.
  -  롤백(Rollback): 트랜잭션의 실패나 오류가 발생하여 트랜잭션의 작업을 취소하고 이전 상태로 되돌리는 단계입니다.

 

트랜잭션 제어:
  -  COMMIT: 트랜잭션의 작업을 완료하고 변경된 내용을 영구적으로 저장합니다.
  -  ROLLBACK: 트랜잭션의 작업을 취소하고 이전 상태로 되돌립니다.
  -  SAVEPOINT: 트랜잭션 내에서 저장점을 설정하여 특정 지점부터 롤백할 수 있습니다.
  -  SET TRANSACTION: 트랜잭션의 속성을 설정하거나 변경합니다(격리 수준, 트랜잭션 이름 등).


트랜잭션은 데이터베이스에서 일관성과 안정성을 유지하는 데 필수적입니다. ACID 원칙을 준수하며, 트랜잭션의 단계와 제어를 적절히 활용하여 데이터베이스 작업을 안전하게 처리할 수 있습니다.