트랜잭션 이란 데이터베이스의 상태를 변화시키기 해서 수행하는 작업의 단위를 뜻합니다.
- 하나의 동작을 수행했을 때, 처음 수행 동작부터 마지막까지 올바르게 수행했을 때, 반영하고 오류가 났을 때,
전 상황으로 복귀해주는 역할을 합니다.
- 데이터베이스에서 작업의 단위로 트랜잭션이란 개념을 도입한 이유는 데이터의 일관성을 유지하면서 안정적으로
데이터를 복구시키기 위함 입니다.
예시로 설명을 하겠습니다. 트랜잭션 이란 단어를 보면 현금을 인출하는 장면을 떠오려보세요.
현금 인출기에서 돈을 뽑을 때, 카드를 넣고 원하는 액수 만큼을 잔액에서 빼서 인출해줍니다.
또한 총 액수에서 인출이 된 만큼의 차익을 뺀 금액으로 바뀌도록 되어 있습니다.
어느 하나라도 문제가 일어나면 문제가 생기면 모든 동작이 수행 됐을 때 모든 과정이 완료 됩니다.
트랜잭션이 이러한 과정을 거치는 것이라고 생각하면 됩니다.
노란 창에서는 삭제했지만, 다른 검정 창에서는 삭제되지 않았습니다.
아직까지 데이터 베이스에 최종적으로 반영된 것이 아닌 상태이기 때문에 값이 나왔습니다.
commit; -- 명령문을 실행하면 최종 반영
노란 창에서 Commit; 을 사용했을 때, datebase의 내용이 반영이 되어서 검정 창에서도 입력 값이 출력되지 않습니다.
-
DDL 은 자동으로 트랜젝션이 적용(commit)
-
DML 은 정산적으로 종료(DB접속이 종료) 되었다면 자동으로 commit , 최종적으로 연결을 스스로 저장
-
정전이 발생하거나 컴퓨터가 다운 시 자동으로 rollback
-
Rollback : 마지막 commit 한 시점으로 돌아가고, 한번도 commit 하지 않았다면 처음으로 돌아간다.
되돌리기 – rollback
delete로 테이블을 삭제하지만 rollback 을 사용하여 테이블을 복귀 시킨 것입니다.
'빅데이터 > DataBase' 카테고리의 다른 글
[DataBase] 조인(JOIN) (0) | 2020.04.12 |
---|---|
[DataBase] 데이터 무결성 제약 조건(DICR) (0) | 2020.04.12 |
[DataBase] DML (Data Manipulation Language) (0) | 2020.04.11 |
[DataBase] DDL (Data Definition Language) (0) | 2020.04.11 |
[DataBase] 자료형 타입 (0) | 2020.04.10 |