트랜잭션 편집하기
최신판 | 당신의 편집 | ||
38번째 줄: | 38번째 줄: | ||
〈[https://mommoo.tistory.com/62 트랜잭션(Transaction)이란?]〉, 《티스토리》, 2017-02-27</ref><ref name="트랜잭션 성질3">Lim-Ky, 〈[https://limkydev.tistory.com/100 (DataBase) 트랜잭션이란? (Transaction)]〉, 《티스토리》, 2017-10-06</ref><ref name="트랜잭션 성질4">망나니 개발자, 〈[https://mangkyu.tistory.com/30 (Database) 8. 트랜잭션, 동시성 제어, 회복]〉, 《티스토리》, 2017-12-12</ref> | 〈[https://mommoo.tistory.com/62 트랜잭션(Transaction)이란?]〉, 《티스토리》, 2017-02-27</ref><ref name="트랜잭션 성질3">Lim-Ky, 〈[https://limkydev.tistory.com/100 (DataBase) 트랜잭션이란? (Transaction)]〉, 《티스토리》, 2017-10-06</ref><ref name="트랜잭션 성질4">망나니 개발자, 〈[https://mangkyu.tistory.com/30 (Database) 8. 트랜잭션, 동시성 제어, 회복]〉, 《티스토리》, 2017-12-12</ref> | ||
− | * '''원자성 보장''' : 트랜잭션에서 원자성은 수행하고 있는 트랜잭션에 의해 변경된 내역을 유지하면서, 이전에 커밋된 상태를 임시 | + | * '''원자성 보장''' : 트랜잭션에서 원자성은 수행하고 있는 트랜잭션에 의해 변경된 내역을 유지하면서, 이전에 커밋된 상태를 임시 역역에 따로 저장함으로써 보장한다. 즉, 현재 수행하고 있는 트랜잭션에서 오류가 발생하면 현재 내역을 날려버리고 임시 영역에 저장했던 상태로 롤백 한다. 이전 데이터들이 임시로 저장되는 영역을 롤백 세그먼트(rollback segment)라고 하며, 현재 수행하고 있는 트랜잭션에 의해 새롭게 변경되는 내역을 데이터베이스 테이블이라고 한다. 다시 말해, 트랜잭션의 원자성은 롤백 세그먼트에 의해 보장된다고 할 수 있다. 그런데 오류가 발생하면 롤백 하는데, 트랜잭션의 길이가 길어지게 되면 확실하게 오류가 발생하지 않는 부분도 다시 처음부터 작업을 수행해야 한다. 따라서 확실한 부분에 대해서는 롤백이 되지 않도록 중간 저장 지점인 세이브포인트(save point)를 지정할 수 있다. 세이브포인트를 지정하게 되면 롤백 할 때 세이브포인트 이전은 확실하다 간주하고 그 이후부터 진행하게 된다.<ref name="트랜잭션 성질2"/> |
=== 일관성 === | === 일관성 === |