일관성은 "총합 700을 만족하는 상태에서 다시 총합 700인 상태로 이동했는가"를 봅니다.
계좌별 숫자만 맞아 보이는지가 아니라, 트랜잭션 전후에 규칙이 계속 유지되는지가 핵심입니다.
이체 규칙
A + B = 700
출금과 입금은 함께 완료
계좌별 숫자만 맞아 보이는지가 아니라, 트랜잭션 전후에 규칙이 계속 유지되는지가 핵심입니다.
값은 이동하지만 규칙은 유지됩니다.
중간 상태가 최종 상태처럼 남아 버립니다.
한 트랜잭션 안에서 두 변경이 같이 성공합니다.
총합 규칙을 끝까지 지키지 못한 반쪽 실행입니다.
트랜잭션이 규칙 만족 상태에서 다른 규칙 만족 상태로 이동했습니다.
100이 사라진 것처럼 보여 총합 규칙이 깨지므로 최종 결과가 될 수 없습니다.
핵심: PRIMARY KEY, FOREIGN KEY 같은 선언적 제약은 DBMS가 검사하고, 이체 전후 총합 보존 같은 비즈니스 규칙은 애플리케이션 로직이나 트리거가 끝까지 보장해야 합니다.