Transaction 트랜잭션
ACID 원칙을 만족하는 작업의 단일 논리 단위로써의 연산 순서를 의미한다.
🎯 계좌이체 예시

- Failures : 시스템 충돌, 하드웨어 실패
- 다양한 트랜잭션의 Concurrent execution
ACID 원칙
- Atomicity 원자성
- Consistency 일관성
- Isolation 격리성
- Durability 지속성
Atomicity (= All or Nothing) 원자성

위의 예시에서 6개의 명령어가 모두 함께 실행되거나 모두 실행되지 않거나 해야한다.
→ 6개 중에 하나라도 실패하면 트랜잭션은 roll back되어야한다.
Consistency 일관성

트랜잭션이 실행되면 DB는 valid(유효)한 상태에서 valid한 상태로 전이되어야함(올바른 결과를 도출해야함)
- Consistency requirement는 다음 2가지를 포함한다.
- explicit integrity constraints(명시적 무결성 제약) → 대표키, 외래키와 같은 스키마의 정의 조건
- implicit integrity constraints(암묵적 무결성 제약) → DB의 규칙이나 의미론적 요구조건
- 예를들면 A와 B의 합계는 항상 변하지 않아야 한다.