● 트랜잭션이란
- 하나의 연속적인 업무 단위를 말함
- 트랜잭션에 의한 관계는 필수적인 관계 형태를 가짐
- 하나의 트랜잭션에는 여러 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 표기법)
- 원을 사용하여 필수적 관계와 선택적 관계를 구분
- 필수적 관계에는 원을 그리지 않는다
- 선택적 관계에는 관계선 끝에 원을 그린다.
바커표기법)
- 실선과 점선으로 구분
- 필수적 관계는 관계선을 실선으로 표기
- 선택적 관계는 관계선을 점선으로 표기