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

    2025. 2. 17.

    by. hyunji1109

    개념

    • 하나의 연속적인 업무 단위를 말함
    • 트랜잭션에 의한 관계는 필수적인 관계 형태를 가짐
    • 하나의 트랜잭션에는 여러 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 표기법)

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

     

    바커표기법)

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

     

    'CS > SQL' 카테고리의 다른 글

    [SQLD] 본식별자 vs 인조식별자  (0) 2025.02.18
    [SQLD] Null 속성  (0) 2025.02.17
    [SQLD] 관계와 조인  (0) 2025.02.16
    [SQLD] 정규화  (0) 2025.02.15
    [SQLD] 식별자(Identifier)  (0) 2025.02.12

    댓글