트랜잭션
논리적인 작업 단위 → 트랜잭션
물리적인 작업 단위 → DML, DDL, DCL
트랜잭션이란 '거래'라는 뜻으로 데이터베이스 내에서 하나의 그룹으로 처리되어야 하는 명령문들을 모아 놓은 논리적인 작업 단위이다.
- 데이터베이스 응용 프로그램은 트랜잭션들의 집합으로 정의 할 수 있다.
- 여러 단계의 처리를 하나의 처리처럼 다루는 기능이다.
- 여러 개의 명령어의 집합이 정상적으로 처리되면 정상 종료된다.
- 하나의 명령어라도 잘못되면 전체 취소된다.
- 트랜잭션을 쓰는 이유는 데이터의 일관성을 유지하면서 안정적으로 데이터를 복구하기 위함이다.
* 트랜잭션 필요성
1. A 은행에서 출금하여 B은행으로 송금한다고 가정하자.
2. 송금한느 중에 알 수 없는 오류가 발생하여 A은행 계좌에서 돈이 빠져 나갔는데 B은행 계좌에 입금되지 않았다.
3. 이때, 우리는 A은행 계좌의 출금을 취소하거나, 출금된 금액만큼 B은행 계좌로 다시 송금하면 된다.
4. 하지만 이 방법은 번거롭고 더 심한 오류를 발생시킬수 있다.
5. 그래서 생각해낸 해결책이, 거래가 성공적으로 모두 끝난 후에야 이를 완전한 거래로 승인하고, 거래 도중 뭔가 오류가 발생했을 때는 이 거래를 아예 처음부터 없었던 거래로 되돌리는 것이다.
6. 이렇게 거래의 안전성을 확보하는 방법이 트랜잭션이다.
7. 데이터베이스에선 테이블에서 데이터를 읽어 온 후 다른 테이블에 데이터를 입력하거나 갱신,
삭제하는데 처리 도중 오류가 발생하면 모든 작업을 원상태로 되돌린다.
8. 데이터베이스에선 처리 과정이 모두 성공했을 때만 최종적으로 데이터베이스에 반영한다.
'DB' 카테고리의 다른 글
1213 DB - stored program (0) | 2022.12.13 |
---|---|
1018 DB - 트랜잭션 제어어 (0) | 2022.10.18 |
1011 DB - 서브 쿼리를 통한 행 입력 (1) | 2022.10.11 |
1004 DB - SubQuery 서브 쿼리 (0) | 2022.10.04 |
1004 JSP - (MVC) 커넥션 풀 (DBCP), boardList (1) | 2022.10.04 |