Transaction
개념
- DB에서 하나의 작업을 안전하게 처리하도록 보장해주는 기능
- Commit - 모든 작업이 성공하여 DB에 정상 반영하는 것
- Rollback - 작업 중 단 하나라도 실패한 경우, 작업 이전으로 되돌리는 것
ACID 보장
- Atomicity (원자성)
- 트랜잭션 내의 작업들은 마치 하나의 작업인 것처럼 모두 성공 또는 실패해야 함
- Consistency (일관성)
- 모든 트랜잭션은 일관성 있는 DB 상태를 유지해야 함
- Isolation (격리성)
- 동시에 실행되는 트랜잭션들끼리 서로 영향을 미치지 않아야 함
- Durability (지속성)
- 트랜잭션이 성공적으로 끝내면 항상 결과가 기록되어야 함
격리성의 보장을 위한 트랜잭션의 격리 수준 4단계
- READ UNCOMMITED (커밋되지 않은 읽기)
- READ COMMITTED (커밋된 읽기) - 보편적이게 사용
- REPEATABLE READ (반복 가능한 읽기)
- SERIALIZABLE (직렬화 가능) - 가장 느림 (트랜 잭션을 거의 순서대로 실행)
DB의 연결 구조와 DB 세션
- 사용자가 WAS, DB 접근 툴과 같은 클라이언트를 사용하여 DB Sever에 접근
- 연결 요청 시 커넥션을 맺고 이때 DB 서버 내부에 DB 세션을 생성
- DB 세션이 해당 커넥션을 통한 모든 요청을 처리해줌
- 커밋 또는 롤백을 통해 트랜잭션을 종료하고 나면, 새로운 트랜잭션을 다시 시작할 수 있음
- 사용자가 커넥션을 닫거나, DBA가 세션을 강제로 종료하면 세션도 종료
- 커넥션 풀이 10개의 커넥션을 생성하면, 세션도 개수에 맞춰 10개가 생성됨
댓글남기기