2021년 8월 26일에 작성된 문서 3번 입니다.
데이터 베이스 배운 내용을 정리했습니다.
트랜잭션
여러 개의 작업을 하나로 묶은 실행 유닛
- 하나의 특정 작업으로 시작해 모든 작업을 완료해야 정상 종료.
- 이 중 단 하나라도 실패하면, 이 트랜잭션 속 모든 작업을 실패로 판단.
- 성공 또는 실패, 두 개의 결과만 존재
데이터베이스 트랜잭션은 ACID라는 특성을 가지고 있습니다.
ACID
트랜잭션(transaction)의 안전성을 보장하기 위해 필요한 성질
- Atomicity
- Consistency
- Isolation
- Durability
Atomicity(원자성)
- 하나의 트랜잭션에 속 모든 작업이 전부 성공하거나 전부 실패해서 결과를 예측할 수 있어야 한다.
- 원자성을 지키지 않으면(하나의 작업이라도 실패한다면), 묶인 모든 작업이 실패하게 만들어 기존 데이터를 보호한다.
SQL에서도 마찬가지입니다. 특정 쿼리를 실행했는데 부분적으로 실패하는 부분이 있다면, 전부 실패하도록 구현되어 있습니다. 때때로 충돌 요인에 대해서 선택지를 제공합니다.
Consistency(일관성)
- 데이터베이스의 상태가 일관되어야 한다.
- 하나의 트랜잭션 전과 후, 데이터베이스의 상태는 전과 같이 유효해야 한다.
- 트랜잭션이 일어난 이후의 데이터베이스는 데이터베이스의 제약이나 규칙을 만족해야 한다.
Isolation(격리성, 고립성)
- 모든 트랜잭션은 다른 트랜잭션으로부터 독립되어야 한다
- 트랜잭션이 동시에 실행될 때와 연속으로 실행될 때의 데이터베이스 상태가 동일해야 합니다.
Durability(지속성)
- 하나의 트랜잭션이 성공적으로 수행되었다면, 해당 트랜잭션에 대한 로그가 남아야한다.
- 런타임 오류나 시스템 오류가 발생하더라도, 해당 기록은 영구적이어야 한다.
Written with StackEdit.