트랜잭션 데이터 처리 살펴보기

완료됨

트랜잭션 데이터 처리 시스템은 대부분의 사람들이 비즈니스 컴퓨팅의 기본 기능이라고 생각하는 시스템입니다. 트랜잭션 시스템은 조직이 추적하려는 특정 이벤트를 캡슐화하는 트랜잭션을 기록합니다. 트랜잭션은 금융 트랜잭션(예: 뱅킹 시스템에서 계좌 간 자금의 이동)일 수도 있고, 상품 및 서비스에 대해 고객이 지불하는 대금을 추적하는 소매 시스템의 일부일 수도 있습니다. 트랜잭션을 소규모의 개별 작업 단위로 생각할 수 있습니다.

트랜잭션 시스템은 대용량인 경우가 많으며, 때로는 하루에 수백만 건의 트랜잭션을 처리합니다. 처리되는 데이터에 신속하게 액세스할 수 있어야 합니다. 트랜잭션 시스템에서 수행하는 작업을 종종 OLTP(온라인 트랜잭션 처리)라고 합니다.

Image showing a user reading and writing data in a database

OLTP 솔루션은 데이터 스토리지가 읽기 및 쓰기 작업에 최적화된 데이터베이스 시스템을 사용하여, 데이터 레코드가 생성, 검색, 업데이트, 삭제되는(CRUD 작업) 트랜잭션 워크로드를 지원합니다. 이러한 작업은 데이터베이스에 저장된 데이터의 무결성을 보장되도록 트랜잭션 방식으로 적용됩니다. 이를 위해 OLTP 시스템은 ACID(원자성, 일관성, 격리, 내구성) 의미 체계를 지원하는 트랜잭션을 적용합니다.

  • 원자성 – 각 트랜잭션은 완전히 성공하거나 완전히 실패하는 하나의 단위로 취급됩니다. 예를 들어, 하나의 계좌에서 자금을 인출하여 동일한 금액을 다른 계좌에 예치하는 트랜잭션은 두 동작을 모두 완료해야 합니다. 두 동작 중 하나라도 완료할 수 없는 경우 나머지 동작도 실패해야 합니다.
  • 일관성 – 트랜잭션은 데이터베이스로부터 하나의 유효한 상태에서 다른 유효성 상태로만 데이터를 받을 수 있습니다. 위의 인출 및 예치 예로 돌아가 보면, 트랜잭션의 완료된 상태는 하나의 계좌에서 다른 계좌로의 자금 이체를 반영해야 합니다.
  • 격리 – 동시에 진행되는 트랜잭션은 서로를 간섭할 수 없으며, 일관된 데이터베이스 상태를 반환해야 합니다. 예를 들어, 하나의 계좌에서 다른 계좌로 자금을 이체하는 트랜잭션이 진행 중인 동안 이러한 계좌의 잔액을 확인하는 또 다른 트랜잭션은 일관된 결과를 반환해야 합니다. 잔액 확인 트랜잭션은 하나의 계좌에서 이체 전의 잔액을 반영하는 값을 가져오고 다른 계좌에서는 이체 후의 잔액을 반영하는 값을 가져와서는 안 됩니다.
  • 내구성 – 트랜잭션이 커밋되면 커밋된 상태로 유지됩니다. 계좌 이체 트랜잭션이 완료된 후에는 데이터베이스 시스템이 꺼지더라도 다시 켜진 후에는 커밋된 트랜잭션이 반영되도록 수정된 계좌 잔액이 지속되어야 합니다.

OLTP 시스템은 주로 비즈니스 데이터를 처리하는 라이브 애플리케이션(LOB(사업 부문) 애플리케이션)을 지원되는 데 사용됩니다.