중첩 트랜잭션
Nested transaction중첩된 트랜잭션은 이미 시작된 트랜잭션의 범위 내에서 명령에 의해 시작되는 데이터베이스 트랜잭션입니다.
중첩된 트랜잭션은 데이터베이스에 따라 다르게 구현됩니다.그러나 이러한 변경은 가장 바깥쪽 거래가 커밋될 때까지 관련이 없는 거래에 나타나지 않는다는 공통점을 가지고 있다.즉, 내부 트랜잭션의 커밋이 반드시 시스템에 대한 업데이트를 유지하지는 않습니다.
일부 데이터베이스의 경우, 중첩된 트랜잭션이 커밋될 때까지 '호스트' 트랜잭션에 의해 변경된 내용이 표시되지 않습니다.일부에 [who?]따르면 이는 트랜잭션의 격리 속성에서 비롯됩니다.
네스트된 트랜잭션을 적절하게 처리하는 기능은 진정한 컴포넌트 기반 애플리케이션 아키텍처의 전제 조건입니다.컴포넌트 기반의 캡슐화 아키텍처에서는 프로그래머가 모르는 사이에 네스트된 트랜잭션이 발생할 수 있습니다.컴포넌트 함수는 데이터베이스 트랜잭션을 포함할 수도 있고 포함하지 않을 수도 있습니다(이것은 컴포넌트의 캡슐화된 비밀 정보입니다).정보 숨김을 참조하십시오).이러한 컴포넌트 함수에 대한 호출이 BEGIN - COMMIT 브래킷 내에서 이루어지면 중첩된 트랜잭션이 발생합니다.MySQL과 같은[1] 일반적인 데이터베이스는 BEGIN - COMMIT 대괄호를 중첩할 수 없으므로 이를 처리하려면 프레임워크 또는 트랜잭션 모니터가 필요합니다.중첩된 트랜잭션에 대해 설명할 때는 이 기능이 DBMS에 의존하며 모든 데이터베이스에서 사용할 수 있는 것은 아님을 명확히 해야 합니다.
중첩 트랜잭션의 이론은 플랫 [2]트랜잭션의 이론과 유사합니다.
은행업계는 일반적으로 오픈 네스트된 [citation needed]트랜잭션을 사용하여 금융거래를 처리합니다. 이는 비일관성의 트레이드오프를 수용하면서 [3]더 높은 성과를 제공하는 네스트된 트랜잭션 모델의 느슨한 변형입니다.
추가 정보
- Gerhard Weikum, Gottfried Vossen, 트랜잭션 정보 시스템: 이론, 알고리즘, 동시 제어 및 회복의 실천, Morgan Kaufmann, 2002, ISBN1-55860-508-8
레퍼런스
- ^ "Statements That Cause an Implicit Commit". MySQL 4.1 Reference Manual. Oracle. Retrieved 5 December 2010.
- ^ Resende, R.F.; El Abbadi, A. (1994-05-25). "On the serializability theorem for nested transactions". Information Processing Letters. 50 (4): 177–183. CiteSeerX 10.1.1.43.6470. doi:10.1016/0020-0190(94)00033-6.
- ^ Weikum, Gerhard; Hans-J. Schek (1992). Concepts and Applications of Multilevel Transactions and Open Nested Transactions. Database Transaction Models for Advanced Applications. Morgan Kaufmann. pp. 515–553. CiteSeerX 10.1.1.17.7962. ISBN 978-1-55860-214-4.