트랜잭션이란 업무적 실행 단위 이다.
조금 자세히 이야기 하면
계좌이체 업무를 가정 해보았을때 돈이 빠져나가는쪽,돈을 받는쪽이 동시에 처리 되어야 한다.
(DB처리시 계좌출금(update),계좌입금(update) 동시에 처리가 이루어져야 한다. 이것을 트랜잭션이라고 한다.)
만약 동시처리가 안될시 어떤 문제가 발생하는지 봐보자
계좌입금(update) 먼저 처리가 되고 계좌출금(update)이 이루어졌다고 할때 계좌출금쪽잔고가 없는 경우 계좌입금(update)은 이미 입금이 된 상태이다.. 이런 경우 큰 문제인 것이다. 이것보고 트랙젝션이 깨졌다 또는 반쪽만 실행되었다. 라고 이야기 한다.
트랜잭션이 되기 위해 DB에 기본적인 장치?가 되어있는데 현제 세션에서 SQL문을 수정 하였을때 기본적으로 Lock이 되어 다른 세션에서는 수정할 수가 없도록 막아놓았다. 현제세션에서 SQL문을 수정한 다음 문제 여부 판단 후 COMMIT을 수정된 결과를 반영할건지 ROLLBACK하여 결과를 취소할건지 해야 비로소 UnLock이 된다. (그림참조)
'web_배우고익히고 > 8.Oracle' 카테고리의 다른 글
Oracle 17강 패턴 연산자 (0) | 2020.02.05 |
---|---|
Oracle 14~16강 연산을 통한 데이터 조회 (0) | 2020.02.05 |
Oracle 10~12강 쿼리를 위해 생성해야 할 테이블 구조 및 데이터조작 (0) | 2020.02.05 |
Oracle 9강 오라클 테이블 수정하기(ALTER TABLE) (0) | 2020.02.05 |
Oracle 8강 오라클 데이터 형식(숫자/날짜/큰문자) (0) | 2020.02.05 |