트랜잭션 편집하기

이동: 둘러보기, 검색

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 아이디(ID)으로 기록되고, 다른 장점도 있습니다.

편집을 되돌릴 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 당신의 편집
80번째 줄: 80번째 줄:
 
=== 연산 ===
 
=== 연산 ===
 
==== 커밋 ====  
 
==== 커밋 ====  
[[커밋]](commit) 연산은 모든 작업들을 정상적으로 처리하겠다고 확정하는 명령어로서, 처리과정을 데이터베이스에 영구적으로 저장하는 것이다. 커밋을 수행하면 하나의 트랜잭션 과정을 종료하는 것이다. 커밋을 수행하면 이전 데이터가 완전히 업데이트된다.<ref name="트랜잭션"/> 우측 그림에서 첫 번째 커밋 후 그 뒤에 Update 문으로 데이터를 갱신하고 Delete 문으로 데이터를 삭제한 후 Insert 문을 사용해 데이터를 삽입한다. 만약 이 모든 과정이 오류 없이 수행되었다면 지금까지 실행한 모든 작업을 데이터베이스에 영구 저장하라는 명령으로 커밋을 수행한다.<ref name="트랜잭션2"/>
+
커밋(commit) 연산은 모든 작업들을 정상적으로 처리하겠다고 확정하는 명령어로서, 처리과정을 데이터베이스에 영구적으로 저장하는 것이다. 커밋을 수행하면 하나의 트랜잭션 과정을 종료하는 것이다. 커밋을 수행하면 이전 데이터가 완전히 업데이트된다.<ref name="트랜잭션"/> 우측 그림에서 첫 번째 커밋 후 그 뒤에 Update 문으로 데이터를 갱신하고 Delete 문으로 데이터를 삭제한 후 Insert 문을 사용해 데이터를 삽입한다. 만약 이 모든 과정이 오류 없이 수행되었다면 지금까지 실행한 모든 작업을 데이터베이스에 영구 저장하라는 명령으로 커밋을 수행한다.<ref name="트랜잭션2"/>
  
 
==== 롤백 ====
 
==== 롤백 ====
[[롤백]](rollback) 연산은 작업 중 문제가 발생하여 트랜잭션의 처리과정에서 발생한 변경사항을 취소하는 명령어이다. 이 트랜잭션의 일부가 정상적으로 처리되더라도 트랜잭션의 원자성을 구현하기 위해 이 트랜잭션이 행한 모든 연산을 취소한다는 특징이 있다. 트랜잭션이 시작되기 이전의 상태로 되돌린다. 즉, 마지막 커밋을 완료한 시점으로 다시 돌아간다. 커밋하여 저장한 것만 복구한다. 롤백 시에는 해당 트랜잭션을 재시작하거나 폐기한다.<ref name="트랜잭션"/> 우측 그림에서 롤백 명령은 마지막으로 수행한 커밋 명령까지만 정상 처리된 상태로 유지한다. 그 이후에 수행했던 모든 DML 명령어 작업들을 취소시켜 이전 상태로 원상 복귀 시킨다. 트랜잭션은 이렇듯 all or nothing(모든 것을 수행하던지 아무것도 하지 말던지) 방식으로 DML 명령어들을 처리한다.<ref name="트랜잭션2"/>
+
롤백(rollback) 연산은 작업 중 문제가 발생하여 트랜잭션의 처리과정에서 발생한 변경사항을 취소하는 명령어이다. 이 트랜잭션의 일부가 정상적으로 처리되더라도 트랜잭션의 원자성을 구현하기 위해 이 트랜잭션이 행한 모든 연산을 취소한다는 특징이 있다. 트랜잭션이 시작되기 이전의 상태로 되돌린다. 즉, 마지막 커밋을 완료한 시점으로 다시 돌아간다. 커밋하여 저장한 것만 복구한다. 롤백 시에는 해당 트랜잭션을 재시작하거나 폐기한다.<ref name="트랜잭션"/> 우측 그림에서 롤백 명령은 마지막으로 수행한 커밋 명령까지만 정상 처리된 상태로 유지한다. 그 이후에 수행했던 모든 DML 명령어 작업들을 취소시켜 이전 상태로 원상 복귀 시킨다. 트랜잭션은 이렇듯 all or nothing(모든 것을 수행하던지 아무것도 하지 말던지) 방식으로 DML 명령어들을 처리한다.<ref name="트랜잭션2"/>
  
 
====세이브포인트====
 
====세이브포인트====
[[세이브포인트]](save point)는 '임시저장' 또는 '부분저장'과 같은 맥락으로 이해할 수 있다. 보통 롤백을 명시하면 삽입, 삭제, 업데이트 등의 작업 전체가 취소되는데, 세이브포인트는 전체가 아닌 특정 부분에서 트랜잭션을 취소하기 위해 사용한다. 세이브포인트를 쓰면 현재의 트랜잭션을 작게 분할하는 것이 가능하다. 세이브포인트는 여러 개의 [[에스큐엘]](SQL)문의 실행을 수행하는 트랜잭션의 경우에 사용자가 트랜잭션 중간 단계에서 세이브포인트를 지정할 수 있다. 세이브포인트를 쓰려면 취소하려는 지점을 명시한 뒤, 그 지점까지 작업을 취소하는 식으로 사용하는데 이 지점을 세이브포인트라고 한다. 세이브포인트를 지정한 뒤 롤백 투 세이브포인트 이름;(rollback to save point name;)을 실행하면 해당 세이브포인트 지점까지 처리한 직업이 [[롤백]]된다.
+
세이브포인트(save point)는 임시저장과 같은 맥락으로 이해할 수 있다. 보통 롤백을 명시하면 삽입, 삭제, 업데이트 등의 작업 전체가 취소되는데 전체가 아닌 특정 부분에서 트랜잭션을 취소시킬 수 있다. 세이브포인트를 쓰면 현재의 트랜잭션을 작게 분할 가능하다. 세이브포인트는 여러 개의 [[에스큐엘]](SQL)문의 실행을 수행하는 트랜잭션의 경우에 사용자가 트랜잭션 중간 단계에서 세이브포인트를 지정할 수 있다. 세이브포인트를 쓰려면 취소하려는 지점을 명시한 뒤, 그 지점까지 작업을 취소하는 식으로 사용하는데 이 지점을 세이브포인트라고 한다. 세이브포인트를 지정한 뒤 롤백 투 세이브포인트 이름;(rollback to save point name;)을 실행하면 해당 세이브포인트 지점까지 처리한 직업이 롤백된다.
  
 
== 스케줄 종류 ==
 
== 스케줄 종류 ==

위키원에서의 모든 기여는 다른 기여자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요. 만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다 (자세한 사항은 위키원:저작권 문서를 보세요). 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 | 편집 도움말 (새 창에서 열림)