트랜잭션
- 데이터베이스의 상태를 변환시키는 여러 작업들을 하나로 묶은 단위
: 한꺼번에 수행되어야 하는 일련의 작업 또는 연산
: DBMS에서 병행 제어 및 회복 작업시 처리되는 작업의 논리적 단위
: 사용자의 시스템에 대한 서비스 요구시 응답하기 위한 상태 변환 과정의 작업 단위
- 특징
: 하나의 트랜잭션은 Commit(반영)되거나 Rollback(복귀) 됨
트랜잭션의 성질 (ACID)
- Atomicity (원자성)
: 트랜잭션 내의 모든 작업이 Commit되거나 Rollback 되는 특성
ㆍ트랜잭션의 연산은 데이터베이스에 모두 반영되든지 전혀 반영되지 않음
ㆍ트랜잭션 내의 단 하나의 명령이라도 수행되지 않을 경우 트랜잭션 전부가 취소 됨
- Consistency (일관성)
: 트랜잭션의 실행 완료 후 데이터베이스의 상태를 일관적으로 유지하는 것
ㆍ데이터의 타입이 변하는 등의 데이터에 대한 변화가 발생하지 않는 것
ㆍ시스템이 가지고 있는 고정요소는 트랜잭션 수행전과 후의 상태가 같아야 함
- Isolation (격리성)
: 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 트랜잭션끼리 서로의 연산에 끼어들 수 없음
ㆍ수행중인 트랜잭션은 완료될때까지 다른 트랜잭션에서 수행결과를 참조할 수 없음
- Durability (지속성)
: 한번 Commit(반영)된 트랜잭션의 내용은 영원히 적용 됨
트랜잭션의 연산
- Commit
: 트랜잭션에 대한 작업을 성공적으로 마치고 데이터베이스에 적용시키는 연산
- Rollback
: 트랜잭션이 비정상적으로 처리되었을때 트랜잭션 내의 작업들을 취소하는 연산
: 트랜잭션을 성공적으로 마쳤어도 실행가능
: Rollback수행시 해당 트랜잭션을 재시작하거나 폐기
트랜잭션의 상태
- Active (활동)
: 트랜잭션이 활동중인 상태
- Failed (실패)
: 트랜잭션 실행 중 오류발생으로 인해 중단된 상태
- Aborted (철회)
: 트랜잭션이 비정상적으로 종료되어 Rollback연산을 수행한 상태
- Partially Committed (부분 완료)
: 트랜잭션의 마지막 연산까지 실행 후 Commit 연산이 실행되기 전의 상태
- Committed (완료)
: 트랜잭션을 Commit후 성공적으로 종료되어 데이터베이스에 적용된 상태
Refference
'Database > Database' 카테고리의 다른 글
[백엔드 개발자 로드맵 2020] DATABASE - 인덱스 구조 (Index Structures) (0) | 2021.02.07 |
---|---|
[백엔드 개발자 로드맵 2020] DATABASE - 정규형 (0) | 2021.02.07 |
[백엔드 개발자 로드맵 2020] DATABASE - N+1 쿼리 문제 (0) | 2021.02.07 |
[백엔드 개발자 로드맵 2020] DATABASE - ORM (Object Relational Mapping) (0) | 2021.02.07 |
[백엔드 개발자 로드맵 2020] 데이터베이스의 종류 (Database) (0) | 2021.02.06 |