- 정의 : 데이터베이스의 상태를 변화시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 수행되어야 할 일련의 연산들을 의미
- 데이터베이스의 상태를 변화시킨다는 것 ?
→ 질의어(SELECT, INSERT, DELETE, UPDATE)를 이용하여 데이터베이스를 접근 하는 것을 의미
- 데이터베이스의 상태를 변화시킨다는 것 ?
- 트랜잭션의 특징
- 원자성 (Atomicity) : 트랜잭션이 데이터베이스에 모두 반영되던가, 아니면 전혀 반영되지 않아야 한다는 것
- 일관성 (Consistency) : 트랜잭션의 작업 처리 결과가 항상 일관성이 있어야 함
- 독립성 (Isolation) : 둘 이상의 트랜잭션이 동시에 실행되고 있을 경우, 어떤 하나의 트랜잭션이라도 다른 트랜잭션의 연산에 끼어들 수 없다는 것
- 지속성 (Durability) : 트랜잭션이 성공적으로 완료되었을 경우, 결과는 영구적으로 반영되어야 함
- Commit, Rollback 연산
- Commit : 하나의 트랜잭션이 성공적으로 끝났고, 데이터베이스가 일관성있는 상태에 있을 때, 하나의 트랜잭션이 끝났다는 것을 알려주기 위해 사용하는 연산
- → 수행했던 트랜잭션이 로그에 저장되며, 후에 Rollback 연산을 수행했었던 트랜잭션단위로 하는 것을 도와줌
- Rollback : 하나의 트랜잭션 처리가 비정상적으로 종료되어 트랜잭션의 원자성이 깨진 경우, 트랜잭션을 처음부터 다시 시작하거나, 트랜잭션의 부분적으로만 연산된 결과를 다시 취소시킴
- 트랜잭션의 상태
- 활동(Active) : 트랜잭션이 실행중인 상태
- 실패(Failed) : 트랜잭션 실행에 오류가 발생하여 중단된 상태
- 철회(Aborted) : 트랜잭션이 비정상적으로 종료되어 Rollback 연산을 수행한 상태
- 부분 완료(Partially Committed) : 트랜잭션의 마지막 연산까지 실행했지만, Commit 연산이 실행되기 직전의 상태
- 완료(Committed) : 트랜잭션이 성공적으로 종료되어 Commit 연산을 실행한 후의 상태
'CS > Database' 카테고리의 다른 글
[CS] Redis (1) | 2023.11.01 |
---|---|
[CS] 트랜잭션의 격리 수준 (Transaction Isolation Level) (1) | 2023.11.01 |
[CS] 정규화 (1) | 2023.11.01 |
[CS] 이상, 인덱스 (1) | 2023.10.23 |
[CS] Key, Join, NoSQL (2) | 2023.10.23 |