[CS知識]データベース1トランザクション


1.取引
what?
データベースのステータスを変更するために実行されるアクションの単位.
ステータスの変更->SQLクエリーによるデータベースへのアクセス
SELECT, INSERT, DELETE, UPDATE
作業単位->ユーザ定義の基準に基づいてSQL文を決定する
예시 ) 사용자 A가 사용자 B에게 만원을 송금한다.
* 이때 DB 작업
- 1. 사용자 A의 계좌에서 만원을 차감 : UPDATE 문을 사용해 사용자 A의 잔고를 변경
- 2. 사용자 B의 계좌에 만원을 추가 : UPDATE 문을 사용해 사용자 B의 잔고를 변경
현재 작업 단위 : 출금 UPDATE + 입금 UPDATE

-> 이를 통해 하나의 트랜잭션이라고 한다.
- 두 쿼리가 완료되어야 하나의 작업(트랜잭션)이 완료됨 -> 'COMMIT'
- 만약, 쿼리가 하나라도 실패하면 이전 상태로 되돌려야 함 -> 'ROLLBACK'
how? (プロパティ)
  • 原子星
    トランザクションはすべてdbに反映するか、完全に反映しない必要があります.
  • 整合性
    トランザクションの結果は常に一致するはずです.
  • 独立性
    2つ以上のトランザクションが同時に実行される場合、他のトランザクションは介入できません.
  • 連続性
    取引結果は永久に反映しなければならない.
  • commit
    トランザクションが完了すると、データベースが一貫した状態にある場合に通知される演算.
    rollback
    トランザクションが失敗した場合は、以前の状態に戻す必要があります.