(오라클) 트랜잭션, TLC, LOCK, 읽기 일관성

2021. 12. 23. 20:13오라클(Oracle) 데이터 베이스

 

트랜잭션을 처음 접하니까 바로 드는 생각, 

 

그럼 이때까지 열심히 insert로 열 데이터를 만들어서 

select 어쩌구 저쩌구 본 데이터들은 

어디있지???

 

결론적으론 commit을 하지 않아 다른 세션에서 봤을 때 보이지 않는단다. 

반영이 안된다는 소리.

insert와 마찬가지로 delete도 commit해주지 않으면 반영이 안된다.

간혹 프로그램에 따라서 오토로 해주는 경우도 있다고 한다.

 

 

 

트랜잭션 관계형 데이터 베이스에서 하나의 작업 또는 밀접하게 연관되어 있는 작업 수행을 위해
나눌 수 없는 최소 수행 단위를 트랜잭션이라고 한다.
SQL문법 중에서 트랜잭션을 제어하는데 사용하는 명령어는 TLC라고 한다.
트랜잭션을 제어하는 명령어 오라클 데이터베이스에서의 세션은 데이터 베이스 접속 시작부터 접속 종료되기까지의 전체 기간을 의미

하나의 세션은 여러 SQL문이 하나의 작업 단위로 다뤄지는 여러개의 트랜잭션으로 구성된다.
트랜잭션 작업을 데이터 베이스에서 영구히 반영할 때 commit 명령어를 사용한다.
지금까지 한 작업을 취소할 때는 Roll back 명령어를 쓴다.
LOCK 이 명령어를 통해 현재 트랜잭션이 종료될 때까지 다른 세션에서는
데이터 조작 전 상태의 데이터만 조회할 수 있으며 이러한 특성을 읽기 일관성이라고 한다.