상세 컨텐츠

본문 제목

[SQLD] 트랜잭션

SQL

by Wanderer Kim 2023. 2. 25. 22:23

본문

728x90

트랜잭션의 특성

  • 트랜잭션은 데이터베이스의 논리적 연산단위이다.
  • 하나의 트랜잭션에는 하나 이상의 SQL 문장이 포함된다. 트랜잭션은 분할할 수 없는 최소의 단위이다. 그렇기 때문에 전부 적용하거나 전부 취소한다. 
특성 설명
원자성(Atomicity) - 트랜잭션에서 정의된 연산들은 모두 성공적으로 끝나거나 모두 실패해야 한다.
일관성(Consistency) - 트랜잭션이 실행되기 전의 데이터베이스의 내용이 잘못되어 이ㅉ지 않다면 실행된 이후에서 데이터베이스의 내용에 잘못이 있으면 안된다.
고립성(Isolation) - 트랜잭션이 실행되는 도중에 다른 트랜잭션의 영향을 받아 잘못된 결과를 만들어서는 안된다.
지속성(Durability) - 트랜잭션이 성공적으로 수앻되면 그 트랜잭션이 갱신한 데이터베이스의 내용은 영구적으로 저장된다.

COMMIT

  • 입력한 자료나 수정한 자료에 대해서 또는 삭제한 자료에 대해서 전혀 문제가 없다고 판단되었을 경우 COMMIT 명령어를 통해서 트랜잭션을 완료할 수 있다.
  • COMMIT이나 ROLLBACK 이전의 데이터 상태
    • 메모리 버퍼에만 영향을 받았기 때문에 데이터의 변경 이전 상태로 복구 가능하다.
    • 현재 사용자는 SELECT 문장으로 결과를 확인 가능하다.
    • 다른 사용자는 현재 사용자가 수행한 명령의 결과를 볼 수 없다.
    • 변경된 행은 잠금이 설정되어서 다른 사용자가 변경할 수 없다.
  • COMMIT이후의 상태
    • 데이터에 대한 변경 사항이 데이터베이스에 반영된다.
    • 이전 데이터는 영원히 잃어버리게 된다.
    • 모든 사용자가 결과를 볼 수 있다.
    • 관련된 행에 대한 잠금이 풀리고, 다른 사용자들이 행을 조작할 수 있게 된다.

ROLLBACK

  • 테이블 내 입력한 데이터나, 수정한 데이터, 삭제한 데이터에 대하여 COMMIT 이전에는 변경 사항을 취소할 수 있는데 데이터베이스에서 롤백 기능을 사용한다.
  • 롤백은 데이터 변경 사항이 취소되어 데이터의 이전 상태로 복구되며, 관련된 행에 대한 잠금이 풀리고 다른 사용자들이 데이터 변경을 할 수 있게 된다. 
반응형

'SQL' 카테고리의 다른 글

[SQLD] RANK 함수  (0) 2023.04.28
[SQLD] 슈퍼/서브 타입 데이터 모델의 변환 기술  (0) 2023.03.08
[SQLD] 엔터티  (0) 2023.03.07
[SQLD] 문자유형비교방법  (0) 2023.02.25
Database Transaction  (0) 2022.04.26

관련글 더보기

댓글 영역