Transaction(이하 트랜잭션)은 데이터베이스에서 데이터의 논리적인 작업 단위를 나타내는 개념이다.
일련의 데이터 조작 작업을 하나의 논리적인 작업으로 묶어서
원자성, 일관성, 격리성, 영속성을 보장한다.
- 원자성(Atomicity)
트랜잭션은 " 전부 성공하거나 전부 실패"하는 원자적인 작업 단위이다.
모든 작업이 성공적으로 완료되면 트랜잭션은 commit이 되고, 하나라도 실패하면 트랜잭션은 롤백이 되어 이전 상태로 복구가 된다. - 일관성(Consistency)
말 그대로 일관된 상태를 유지해야한다.
트랜잭션이 시작하기 전과 후의 데이터베이스의 상태는 일관성이 있어야한다. 제약 조건의 만족, 그리고 일관된 규칙을 따라야 한다. - 격리성(Isolation)
여러 트랜잭션이 동시에 실행될 때, 각 트랜잭션은 다른 트랜잭션의 작업에 영향을 주지 않고 독립적으로 실행이 되어야한다. 서로 격리 되어야 하며, 각각의 트랜잭션은 서로의 변경 사항을 볼 수 없다. - 영속성(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 |
댓글