2009. 7. 29. 15:51

Oracle Commit와 Rollback,Transaction(커밋,롤백,트랜잭션)의 개념.

 SQL> insert into MUSIC values('00001','Yesterday','yesterday.mp3','Beatles','M.
Jack','/rtps/data/Y/','02');
1 개의 행이 만들어졌습니다.

앞전 포스팅에서 만든 테이블에 위와 같이 데이타를 입력합니다.

select문을 이용하여 insert된 데이타를 조회합니다.
 SQL> select title from Music;

TITLE
-----------------------------------------------------------------------

Yesterday

SQL>

commit하여 완전히 DB상에 저장을 합니다.
 SQL> commit;

커밋이 완료되었습니다.

SQL>

두번째 데이타를 넣어봅시다.
 
SQL> insert into MUSIC values('00002','Say Yes','sayyes.mp3','ChangeAska','CA','
/rtps/data/S/','81');

1 개의 행이 만들어졌습니다.
SQL> select title from Music;

TITLE
-------------------------------------------------------------------------

Yesterday
Say Yes

SQL>

여기서 롤백을 실시해봅시다.
 SQL> rollback;

롤백이 완료되었습니다.

롤백후에 데이타를 조회해봅니다.
 SQL> select title from Music;

TITLE
-----------------------------------------------------------------------

Yesterday

commit는 작업된 SQL문을 완전히 오라클테이블스페이스에 적용시키는것입니다.
rollback은 마지막으로 commit된 곳으로 되돌리는 기능을 하게됩니다.

단, 테이블의 생성과 테이블의 삭제의 경우에는 적용되지 않습니다.

즉 우리말로 말하자면 승인과 취소의 역활을 하는 것이지요..인터넷에서 무언가를 입력할때 확인과 취소의 역활을 한다고 보면 됩니다. 그걸 영어로 어렵게 말하면 commit하고 rollback한다고 유식쟁이들이 말하는겁니다.

이런 방법을 트랜잭션이라고 말합니다만 단순 확인/취소보다는 약간 어려운 개념이 있습니다.
여러명이 DB를 열고 데이타를 추가하거나 삭제,변경시에는 어느 시기에 commit된 시각이 적용되느냐하는 어려움이 남게 되지요...바로 이럴때 교통정리까지 해주는 기능을 또한번 유식쟁이들은 트랜잭션이라고 하는거지요..