2. 데이터베이스의 Transaction은 ACID 특징으로 기술되는 속성을 가진다.
o 원자성(Atomicity) : Transaction은 완전하게 발생하거나 전혀 발생하지 않는다.
o 일관성(Consistency) : Transaction은 데이터베이스를 하나의 일관된 상태로부터 다음의 일관된 상태로 전환한다.
o 고립성(Isolation) : 한 Transaction의 영향은 그 Transaction이 커밋을 완료하기 전까지 다른 Transaction에게 보이지 않는다.
o 영속성(Durability) : Transaction은 한 번 Commit되면, 그 결과는 영구적으로 유지된다.
o TX Lock : Transaction Lock으로 Transaction이 처음으로 변경을 시작할 때 획득되며, Transaction이 commit 또는 rollback을 수행할 때까지 유지되는 Lock
o Transaction은 Commit 또는 Rollback 명령에 의해 명시적으로 끝난다.
o Commit 또는 Rollback의 명령에 의해 Transaction이 종료되지 않으면, 사용중인 도구 또는 환경에 따라 Commit 또는 Rollback에 자동 수행된다.
o SQL*PLUS 에서는 사용자 대신 Commit을 수행하고
o Pro*C에서는 사용자 대신 Rollback를 수행한다.
4 ORACLE의 모든 Transaction은 원자성을 가지며, Transaction을 구성하는 모든 명령문은 Commit되거나 Rollback된다.
5 특정 명령문의 실패는 실패 이전 명령문이 자동으로 Rollback되도록 하지 않는다. 즉, 기존에 이미 수행된 명령문의 작업결과는 보존된다.
6. Transaction 제어 명령문
o Commit : Commit과 Commit Work는 동일하며, Transaction을 종료하고, Transaction에서 변경된 내용을 영구적으로 보존한다.
o Rollback : Rollback과 Rollback Work는 동일하며, Transaction을 종료하고, Transaction에서 변경된 내용을 변경전의 상태로 되돌린다. 즉, Rollback Segment에 저장되어 있는 정보를 읽어서 데이터베이스 블록들을 Transaction이 시작하기 이전상태로 복구 함으로써 Rollback을 수행한다.
o Savepoint : Transaction내에서 특정 지점을 표시하며, 하나의 Transaction이 여러 지점으로 분할 될 수 있다.
o Rollback To <Savepoint> : Savepoint로 표시된 지점 이전에 수행된 작업은 Rollback되지 않으며, Savepoint로 명시된 지점까지만 Rollback을 수행한다.
o Set Transaction : 고립 수준과 읽기전용 또는 읽고 쓰기와 같은 Transaction의 다양한 속성들을 설정할 수 있도록 하며, Transaction이 특정 Rollback Segment를 사용하도록 지시하는데 사용된다.
댓글 없음:
댓글 쓰기