지금까지 insert,update,delete로 행한 작업들은.. 아직 완전히 수행된 게 아니다!
왜냐하면 지금까지 한 작업들은 메모리에만 저장되어 있을 뿐, 하드디스크에 영구적으로 저장된 것이 아니기 때문이다.

예를 들어, DataBase에 Student 테이블이 저장되어있다.
사용자가 이 테이블에 insert,update,delete등을 수행하기 위해 DataBase에 접속한다고 치자.
그러면 DBMS(이건 뭐지?데이타베이스메니지먼트시스템인가?맞는 듯?)에 Student테이블의 복사본이 만들어지고,
사용자는 실질적으로 이 복사본에 삽입,수정,삭제를 하고 있는 것이다.
그러므로 이러는 동안엔 하드디스크에 저장된 DataBase의 Student테이블의 내용은 전~혀 변하지 않는다.
사용자가 작업한 내용은 오직 메모리에만 반영되고 있을 뿐이다.
그렇다면 이 내용을 하드디스크에 저장하려면 어떻게 하면 될까?

바로 COMMIT 명령어가 그 역할을 수행하는 거지!

그렇다면 ROLLBACK은 뭐?
COMMIT하기 전에는 삽입,수정,삭제한 내용이 메모리에만 저장되어 있다고 했는데,
ROLLBACK은 이렇게 메모리에 반영된 내용들을 지울때(혹은 되돌릴때?) 쓰는 명령어다.
영어를 봐라 roll back! 되돌아가다... 뭐 이런 어감이지 않은가?
메모리의 내용들을 되돌리는 것이기 때문에, COMMIT을 실행한 후(디스크에 변경 내용 저장됨)에는 소용이 없다. 
 
정리하면

COMMIT: 지금까지 작업한 내용을 영구적으로 디스크에 저장!
ROLLBACK: 변경된 작업 내용을 전부 취소!


'SQL 언어 > 데이터 조작어(DML)' 카테고리의 다른 글

DELETE  (0) 2012.03.08
UPDATE  (0) 2012.03.08
INSERT-②  (0) 2012.03.08
데이터입력(INSERT)-①  (0) 2012.03.08
Posted by Engineer135
,