공부기록

트랜잭션 본문

CS/DB

트랜잭션

코타쿠 2021. 4. 30. 20:34
  • 트랜잭션의 정의
    • 트랜잭션은 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위, 또는 한꺼번에 모두 수행되어야할 일련의 연산을 의미
    • ACID (Atomiticy, Consistency, Isolation, Durability) 성질을 가지는 데이터 베이스 연산의 나열 (Sequence)이다.
      • Atomicity (원자성)
        • 트랜잭션의 연산은 데이터베이스에 반영되도록 모두 완료 (Commit)되든지, 아니면 전혀 반영되지 않도록 복구(Rollback)되어야 한다.
        • 트랜잭션 내의 모든 명령은 반드시 완벽히 수행되거나, 오류 발생시 모두 취소되어야 한다.
      • Consistency (일관성)
        • 트랜젝션이 commit되면 언제나 일관성 있는 데이터베이스 상태로 변환한다.
        • 무결성 제약이 트랜잭션 전과 후가 같아야 하는 것을 의미
      • Isolation (독립성)
        • 둘 이상의 트랜잭션이 동시에 수행되는 경우 어느 하나의 트랜잭션 실행 중 다른 트랜잭션의 연산이 끼어들 수 없다.
        • 수행 중인 트랜잭션은 완전히 완료될 때까지 다른 트랜잭션에서 수행 결과를 참조할 수 없다.
      • Durability (지속성)
        • 성공적으로 완료된 트랜잭션의 결과는 영구적으로 반영되어야함.
        • 모든 트랜잭션은 로그로 남고 시스템 장애 전 상태로 되돌릴 수 있다.
      • 트랜잭션은 암시적으로 시작하며 "commit work" 또는 "rollback work"로 종료한다. 
        • commit은 성공적인 트랜잭션 종료를 의미한다.
        • rollback은 비정상적인 트랜잭션 종료를 의미한다.

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

View  (0) 2021.05.01
인덱스  (0) 2021.04.30
DML SQL  (0) 2021.04.30
DDL SQL  (0) 2021.04.30
데이터베이스 언어 (SQL)  (0) 2021.04.30