어흥
[CS] 데이터베이스 - Transaction 본문
1. Transaction(트랜잭션)이란?
- 하나의 논리적 기능을(DB의 상태를 변환시키는) 수행하기 위한 작업의 단위
- 한번에 모두 수행되어야 하는 일련의 연산
2. 트랜잭션의 상태
※Commit 연산이란?
- 1개의 트랜잭션이 완료되고 데이터베이스가 일관된 상태일 때, 해당 트랜잭션의 연산이 완료됨을 관리자에게 알려주는 연산
- Active(활동): 트랜잭션이 실행중인 상태
- Failed(실패): 트랜잭션 실행중 오류가 발생하여 중단된 상태
- Aborted(철회): 트랜잭션의 비정상 종료로 인해 Rollback을 수행한 상태
- Partially Committed(부분 완료): 트랜잭션의 마지막 연산까지 실행했지만 아직 Commit 연산을 수행하지 않은 상태
- Committed(완료): 트랜잭션이 성공적으로 종료되어 Commit 연산을 수행한 이후의 상태
3. 트랜잭션의 성질(ACID)
- Atomicity(원자성)
1) 트랜잭션의 연산은 DB에 전부 반영 or 전부 미반영 상태여야 한다
2) 트랜잭션 내의 모든 연산이 완벽하게 수행되어야 하며, 1개라도 오류가 발생하면 전부 미반영
- Consistency(일관성)
1) 시스템이 가지고 있는 고정 요소는 트랜잭션 수행 전과 후의 상태가 같아야 한다
2) 트랜잭션의 성공적 완료 -> 일관성 있는 데이터베이스 상태로 변환
- Isolation(고립성)
1) 2개 이상의 트랜잭션이(A,B) 수행되는 경우, A가 B의 연산에 끼어들 수 없다
2) 2개 이상의 트랜잭션이(A,B) 수행될 때, A가 종료되지 않은 B의 연산 결과를 참조할 수 없다
- Durability(영속성)
1) 트랜잭션이 성공적으로 완료된 경우, 시스템이 고장나더라도 영구적으로 반영되야 한다
[참고 블로그]
- http://coding-factory.tistory.com/226
- medium.com/@chrisjune_13837/db-transaction-과-acid란-45a785403f9e
'CS > 데이터베이스' 카테고리의 다른 글
[DB] E-R Diagram (0) | 2021.09.15 |
---|---|
[CS] 데이터베이스 - 요약 (2) | 2021.09.02 |
[CS] 데이터베이스 - Index (0) | 2020.11.24 |
[CS] 데이터베이스 - DBMS (0) | 2020.11.20 |
[CS] 데이터베이스 - 정규화 (0) | 2020.09.18 |