관리 메뉴

nkdk의 세상

오라클 DB 설계 및 활용 8일째 2번 내용 본문

My Programing/DataBase

오라클 DB 설계 및 활용 8일째 2번 내용

nkdk 2008. 3. 7. 20:36
*** TRANSACTION
단위별 데이터 처리를 의미한다 클라이언트 상에 읽혀진 자료에 변화가 있으면 수정된 자료에 대해 COMMIT 이나 ROLLBACK 으로 원본 DB에 저장 또는 취소 할 수 있다. 이때 여러 개의 데이터에 의한 수정, 삭제, 추가, 작업을 하나의 단위로 묶어 놓고, COMMIT이나 ROLLBACK 을 수동으로 처리한다.
이로 인해 클라이언트 상에서의 오류를 선별적으로 처리 할 수 있다.

-- TRASACTION의 구성
DML: SELECT(DQL), INSERT, UPDATE, DELETE
DDL: CREATE, ALTER, DROP, TRUNCATE, RENAME, COMMENT
DCL: GRANT, REVOKE
TCL:
COMMIT: 저장되지 않은 자료를 DB에 저장하고 현재의 트랜잭션을 종료
ROLLBACK: 자료의 변경사항을 취소하고 현재 트랜잭션을 종료
SAVEPOINT: 트랜잭션의 범위 지정

-- COMMIT트랜잭션시작
CREATE TABLE SAWON3 AS SELECT * FROM SAWON;
DELETE FROM SAWON3 WHERE SAWON_NO=1;
COMMIT;
--트랜잭션끝

--다시 ROLLBACL트랜잭션 시작
SELECT * FROM SAWON3;
DELETE FROM SAWON3 WHERE SAWON_NO=2;
SELECT * FROM SAWON3
ROLLBACK;
--트랜잭션끝

--다시 SAVEPOINT트랜잭션 시작
SELECT * FROM SAWON3;
UPDATE SAWON3 SET SAWON_PAY = 10000 WHERE SAWON_NO=2;
SAVEPOINT A;
UPDATE SAWON3 SET SAWON_PAY = 11000 WHERE SAWON_NO=3;
ROLLBACK TO SAVEPOINT A;

-- DEADLOCK : 두개 이상의 트랜잭션이 서로의 진행을 막고 충돌하는 현상
트랜잭션을 진행 중인 상태에서 다른 사용자가 해당 테이블을 만질 때 사용 할 때 데드락 상태에 빠진다.

오늘은 여기 까지입니다.^^