본문 바로가기
Database

Transaction

by titlejjk 2023. 7. 5.

Transaction(이하 트랜잭션)은 데이터베이스에서 데이터의 논리적인 작업 단위를 나타내는 개념이다.

일련의 데이터 조작 작업을 하나의 논리적인 작업으로 묶어서

원자성, 일관성, 격리성, 영속성을 보장한다.

 

  1. 원자성(Atomicity)
    트랜잭션은 " 전부 성공하거나 전부 실패"하는 원자적인 작업 단위이다.
    모든 작업이 성공적으로 완료되면 트랜잭션은 commit이 되고, 하나라도 실패하면 트랜잭션은 롤백이 되어 이전 상태로 복구가 된다.
  2. 일관성(Consistency)
    말 그대로 일관된 상태를 유지해야한다.
    트랜잭션이 시작하기 전과 후의 데이터베이스의 상태는 일관성이 있어야한다. 제약 조건의 만족, 그리고 일관된 규칙을 따라야 한다.
  3. 격리성(Isolation)
    여러 트랜잭션이 동시에 실행될 때, 각 트랜잭션은 다른 트랜잭션의 작업에 영향을 주지 않고 독립적으로 실행이 되어야한다. 서로 격리 되어야 하며, 각각의 트랜잭션은 서로의 변경 사항을 볼 수 없다.
  4. 영속성(Durability)
    트랜잭션이 성공적으로 commit되면, 그 결과는 영구적으로 유지 되어야 한다.
    시스템 장애 또는 손상된 데이터베이스 등등의 상황에서도 데이터는 보존 되어야 한다.

 

 

트랜잭션은 일반적으로 다음과 같은 단계로 진행이 이루어 진다.

1. 시작(Start) 트랜잭션 시작
2. 작업(Execute) 데이터베이스의 조작 작업(읽기, 쓰기, 갱신 등)을 수행
3. 커밋(Commit) 모든 작업이 성공적으로 완료되었으면 트랜잭션을 영구화하기 위해 데이터 베이스 변경 사항을 저장
4.롤백(Rollback) 작업 중 하나라도 실패하면 트랜잭션을 롤백하여 이전 상태로 되돌림

 

'Database' 카테고리의 다른 글

MySQL 조건절 여러가지 예제  (0) 2023.06.02
내가 보려고 만든 MYSQL명령어 모음  (0) 2023.06.02
ORACLE 별칭(alias) 설정  (0) 2023.04.21
SQP의 기본 SELECT절과 FROM절  (0) 2023.04.21
ORACLE 테이블의 제약조건  (0) 2023.04.21

댓글