20210713 TIL

김진태·2021년 7월 13일
0

TIL

목록 보기
26/28

트랜잭션: 데이터베이스에서 데이터에 대한 하나의 논리적 실행단계

ACID (원자성, 일관성, 고립성, 지속성)는 데이터베이스 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 성질을 가리키는 약어

  • 트랜잭션의 특징

    • 더 이상 쪼갤 수 없는 최소단위의 작업
    • 모두 저장되거나, 아무 것도 저장되지 않거나를 보장!!
    • 모! 아니면 도!!
  • 16) 데이터 2개 이상 저장 시

    A 계좌→ B계좌로 200,000 원 이체 시

    • A 계좌 잔고: 1,000,000 원

    • B 계좌 잔고: 1,000,000 원

      정상 케이스

    1. A 계좌 잔고 200,000 원 이상 확인

      • A 계좌 잔고: 1,000,000 원
    2. A 계좌 잔고 200,000 원 금액 감소

      • A 계좌 잔고: 800,000 원 (1,000,000 원 - 200,000 원)
    3. B 계좌 잔고 200,000 원 금액 증가
      - B 계좌 잔고: 1,200,000 원 (1,000,000 원 + 200,000 원)

      만약, 3번 과정에서 에러가 발생 시

    • A 계좌 잔고: 800,000 원 ??
    • B 계좌 잔고: 1,000,000 원 ??
  • 17) 데이터 2개 이상 저장 시 (with 트랜잭션)

    트랜잭션 시작

    1. A 계좌 잔고 200,000 원 이상 확인

      • A 계좌 잔고: 1,000,000 원
    2. A 계좌 잔고 200,000 원 금액 감소

      • A 계좌 잔고: 800,000 원 (1,000,000 원 - 200,000 원)
    3. B 계좌 잔고 200,000 원 금액 증가
      - B 계좌 잔고: 1,200,000 원 (1,000,000 원 + 200,000 원)

      모두 성공 시 ⇒트랜잭션 Commit

      중간에 하나라도 실패 시 ⇒ 트랜잭션 Rollback

TIL

스파르타 강의 내용을 가져온 것이다.
위 내용을 봤을 때 트랜잭션은 jdbc의 Connection 과 같은 역할을 하는 것 같다.
예외 처리를 해 DB와의 통신이 원할 하다면 commit을,아니면 rollback해 자동으로 처리해주는 역할을 하는 것 같다..

profile
안녕!

0개의 댓글