DATABASE/TRANSACTION
03. 세션과 읽기 일관성의 의미
euncoding-240213
2024. 3. 22. 22:22
세션이란?
일반적으로 세션은 어떤 활동을 위한 시간이나 기간을 뜻한다. 오라클 데이터베이스에서 세션은 데이터베이스 접속을 시작으로 여러 데이터베이스에서 관련 작업을 수행한 후 접속을 종료하기까지 전체 기간을 의미한다. 세션이 여러 개라는 말은 현재 오라클 데이터베이스에 접속하여 사용 중인 연결이 여러 개 있다는 뜻이다.
트랜잭션은 데이터 조작 명령어가 모인 하나의 작업 단위를 뜻하며, 세션 내부에는 하나 이상의 트랜잭션이 존재한다. 왜냐하면 데이터베이스에 접속한 후 종료하기까지의 과정이 하나의 세션이고, 이 세션이 유지되는동안 여러 COMMIT, ROLLBACK 작업이 진행되기 때문이다. 세션이 트랜잭션보다 큰 범위의 개념이다.
읽기 일관성의 중요성
데이터베이스는 여러 곳에서 동시에 접근하여 데이터를 관리, 사용하는 것이 목적이므로 대부분 수많은 세션이 동시에 연결되어 있다. 읽기 일관성이란 어떤 특정 세션에서 테이블의 데이터를 변경 중일 때 그 외 다른 세션에서는 데이터의 변경이 확정되기 전까지 변경 사항을 알 필요가 없으므로, 데이터를 변경중인 세션을 제외한 나머지 세션에서는 현재 진행중인 변경과 무관한 본래의 데이터를 보여주는 특성을 의미한다.
데이터베이스 입장에서는 데이터를 변경하는 데이터 조작 명령어 실행후 COMMIT으로 반영할지 ROLLBACK로 취소할지 알 수 없기 때문에 ROLLBACK으로 명령어 수행이 취소될 경우를 대비해 전 데이터를 undo segment에 따로 저장해둔다.