CS/SQL

[SQLD] 모델이 표현하는 트랜잭션

hyunji1109 2025. 2. 17. 23:27

개념

  • 하나의 연속적인 업무 단위를 말함
  • 트랜잭션에 의한 관계는 필수적인 관계 형태를 가짐
  • 하나의 트랜잭션에는 여러 SELECT,INSERT,DELETE,UPDATE 등이 포함될 수 있음

 

💥 계좌이체를 예를 들면

A 고객이 B 고객에게 100 만원을 이체하려고 한다고 가정하자
STEP1) A 고객의 잔액이 100만원 이상인지 확인
STEP2) 이상이면, A 고객 잔액을 -100 UPDATE
STEP3) B 고객 잔액에 +100 UPDATE

 

이 때, 2번과 3번 과정이 동시에 수행되어야 한다. 즉 모두 성공하거나 모두 취소돼야 함(All or Nothing)

👉 이런 특성을 갖는 연속적인 업무 단위를 트랜잭션이라고 한다.

 

💥  주의
1. A 고객 잔액 차감과 B 고객 잔액 자산이 서로 독립적으로 발생하면 안됨
-> 각각의 INSERT 문으로 개발되면 안됨
2. 부분 COMMIT 불가
-> 동시 COMMIT 또는 ROLLBACK 처리

 

 

필수적, 선택적 관계와 ERD

  • 두 엔터티의 관계가 서로 필수적일 때 하나의 트랜잭션을 형성
  • 두 엔터티가 서로 독립적 수행이 가능하다면 선택적 관계로 표현

 

IE 표기법)

  • 원을 사용하여 필수적 관계와 선택적 관계를 구분
  • 필수적 관계에는 원을 그리지 않는다
  • 선택적 관계에는 관계선 끝에 원을 그린다

 

바커표기법)

  • 실선과 점선으로 구분
  • 필수적 관계는 관계선을 실선으로 표기
  • 선택적 관계는 관계선을 점선으로 표기