728x90
목차
2021.12.10 - [Programming/Java 기초] - SQL 데이터 삽입/수정/변경
1. 트랙잭션
1.1. 트랜잭션의 개념
- 트랜잭션(Transaction)
- 논리적인 일의 단위
- 기본 설정 : 하나의 SQL은 하나의 트랜잭션이다.
- 여러 개의 SQL문들이 합쳐져 하나의 트랜잭션이 될 수도 있다.
- 트랜잭션의 활용
- 동시성 제어 : 여러 사용자나 여러 응용 ㅍ로그램들이 동시에 수행되어도 서로 간섭하지 못하도록 보장한다.
- 회복 : 데이터베이스를 갱신하는 도중에 시스템 고장 시에도 데이터베이스의 일관성을 유지한다.
1.2. 트랜잭션의 특성
- 원자성(Atomicity)
- 한 트랜잭션 내의 모든 연산들이 완전히 수행되거나 전혀 수행되지 않음
- 일관성(Consistency)
- 어떤 트랜잭션이 수행되기 전에 데이터베이스가 일관된 상태를 가졌다면 트랜잭션이 수행된 후에 데이터베이스는 또 다른 일관된 상태를 가짐
- 격리성 (Isolation)
- 한 트랜잭션이 데이터를 갱신하는 동안 이 트랜잭션이 완료되기 전에는 갱신 중인 데이터를 다른 트랜잭션들이 접근하지 못하도록 해야 함
- 영속성 (Durability)
- 일단 한 트랜잭션이 완료되면 이 트랜잭션이 갱신한 것은 그 후에 시스템 고장이 발생하더라도 손실되지 않는다.
1.3. 트랜잭션의 상태
- 부분완료 : 마지막 명령문을 실행한 상태
- 완료(COMMIT) : 모든 트랜잭션 결과를 DB에 반영한 상태
- 실패 : 트랜잭션의 실패
- 철회 : 트랜잭션의 모든 결과를 원상태로 돌려놓은 상태
2. 트랜잭션 제어문(TCL)
2.1. 트랜잭션 제어문
- COMMIT
- 트랜잭션의 마지막 명령어가 수행되었음을 나타냄
- ROLLBACK
- 트랜잭션의 변경을 취소하고 트랜잭션 종료
- SAVEPOINT
- 현재 트랜잭션에서 ROLLBACK시킬 위치를 지정
- 현재 트랜잭션에서 ROLLBACK시킬 위치를 지정
2.2. 트랜잭션 제어문(TCL) 활용
- 간단한 트랜잭션 철회
- 오류발생에 따른 트랜잭션 철회
- 트랜잭션을 구성하는 명령문들 중에서 오류가 발생되면 트랜잭션을 철회하고 그렇지 않으면 완료하는 것이 필요
- SAVEPOINT를 이용한 트랜잭션 부분 철회
- 트랜잭션 내에서 SAVEPOINT의 지정
SAVE TRAN 저장점명
- 저장점 위치로 ROLLBACK
ROLLBACK TRAN 저장점명
- 트랜잭션 내에서 SAVEPOINT의 지정
300x250