다음을 통해 공유


트랜잭션

트랜잭션이라는 개념은 일련의 연속된 작업에 따라 데이터베이스의 결과가 달라지는 문제를 해결하기 위해 개발되었습니다.이러한 문제가 발생하는 원인은 연속된 작업으로 인해 이전 작업 결과가 바뀔 수 있기 때문입니다.이러한 경우에는 어느 한 작업이 실패하면 작업 결과의 상태를 예측할 수 없게 됩니다.

이러한 문제를 해결하기 위해 트랜잭션은 완벽한 최종 결과를 얻을 수 있도록 일련의 작업을 그룹화합니다.이 경우, 모든 작업이 성공하여 커밋, 즉 데이터베이스에 쓰여지거나 전체 트랜잭션이 실패하거나 둘 중에 하나입니다.트랜잭션을 취소하는 것을 롤백이라고 합니다.롤백을 하면 변경 사항이 복구되고, 데이터베이스가 트랜잭션 이전 상태로 돌아갑니다.

예를 들어, 자동화된 뱅킹 트랜잭션으로 A 계좌에서 B 계좌로 송금하는 경우 자금을 정확히 처리하려면 A 계좌에서 출금하고 B 계좌로 입금하는 작업이 모두 성공해야 하며 그렇지 않은 경우 전체 트랜잭션이 실패해야 합니다.

트랜잭션에는 다음과 같은 내용을 나타내는 ACID 속성이 있어야 합니다.

  • 원자성   트랜잭션은 가장 작은 작업 단위이며 한 번만 실행됩니다. 즉, 작업이 모두 수행되거나 모두 수행되지 않습니다.

  • 일관성   트랜잭션은 하나의 일관된 데이터 상태를 또 다른 일관된 데이터 상태로 변환하여 데이터의 일관성을 유지합니다.트랜잭션으로 바인딩된 데이터는 의미 구조가 변경되어서는 안 됩니다.

  • 격리   트랜잭션은 격리 단위로서, 각 트랜잭션은 동시 트랜잭션과는 별도로 발생합니다.따라서 하나의 트랜잭션에서 다른 트랜잭션의 중간 단계를 절대로 볼 수 없어야 합니다.

  • 영속성   트랜잭션은 또한 복구 단위이기도 합니다.트랜잭션이 성공하면 시스템이 충돌하거나 종료되어도 업데이트 내용은 그대로 유지됩니다.트랜잭션이 실패하면 시스템은 트랜잭션을 커밋하기 전 상태로 남아 있게 됩니다.

OLE DB(OLE DB에서 트랜잭션 지원 참조) 또는 ODBC(트랜잭션(ODBC) 참조)의 트랜잭션을 지원할 수 있습니다.

분산 트랜잭션이란 분산 데이터, 즉 네트워크로 연결된 하나 이상의 컴퓨터 시스템의 데이터를 업데이트하는 트랜잭션을 말합니다.분산 시스템에서 트랜잭션을 지원하려면 OLE DB 트랜잭션 지원보다는 Microsoft .NET Framework를 사용해야 합니다.

참고 항목

개념

데이터 액세스 프로그래밍