1. 원자성(Atomicity)**: 트랜잭션 내의 모든 작업이 모두 성공적으로 수행되거나, 모두 수행되지 않아야 합니다. 일부 작업만 수행되는 일은 없어야 합니다. 2. 일관성(Consistency)**: 트랜잭션이 시작되기 전과 완료된 후의 데이터베이스 상태는 일관성 있는 상태여야 합니다. 모든 데이터 규칙이 트랜잭션 완료 후에도 유지되어야 합니다. 3. 고립성(Isolation)**: 트랜잭션이 동시에 실행될 때, 서로의 작업에 영향을 미치지 않아야 합니다. 각 트랜잭션은 독립적으로 수행되어야 합니다. 4. 지속성(Durability)**: 트랜잭션이 성공적으로 완료되면, 그 결과는 영구적으로 데이터베이스에 저장되어야 합니다. 시스템 오류가 발생하더라도 데이터는 손실되지 않아야 합니다.
- 트랜잭션의 예 은행에서 계좌 이체를 하는 경우를 예로 들 수 있습니다. A 계좌에서 B 계좌로 돈을 이체하는 트랜잭션은 다음과 같은 작업으로 이루어집니다: 1. A 계좌에서 돈을 출금 2. B 계좌로 돈을 입금
이 두 작업은 하나의 트랜잭션으로 묶여야 합니다. 두 작업이 모두 성공해야 트랜잭션이 완료되며, 하나라도 실패하면 모든 작업이 취소되어야 합니다.
- 트랜잭션 관리 트랜잭션은 SQL에서 다음과 같은 명령어로 관리할 수 있습니다: - `BEGIN TRANSACTION` 또는 `START TRANSACTION`: 트랜잭션의 시작 - `COMMIT`: 트랜잭션 내의 모든 작업을 확정하고 데이터베이스에 반영 - `ROLLBACK`: 트랜잭션 내의 모든 작업을 취소하고 원래 상태로 되돌림
트랜잭션은 데이터베이스 시스템에서 데이터의 무결성과 일관성을 유지하는 데 중요한 역할을 합니다. |