본문 바로가기

DB

1011 DB - 트랜잭션 Transaction

728x90
반응형

트랜잭션

논리적인 작업 단위 → 트랜잭션

물리적인 작업 단위 → DML, DDL, DCL

 

 

트랜잭션이란 '거래'라는 뜻으로 데이터베이스 내에서 하나의 그룹으로 처리되어야 하는 명령문들을 모아 놓은 논리적인 작업 단위이다.

- 데이터베이스 응용 프로그램은 트랜잭션들의 집합으로 정의 할 수 있다.

- 여러 단계의 처리를 하나의 처리처럼 다루는 기능이다.

- 여러 개의 명령어의 집합이 정상적으로 처리되면 정상 종료된다.

- 하나의 명령어라도 잘못되면 전체 취소된다.

- 트랜잭션을 쓰는 이유는 데이터의 일관성을 유지하면서 안정적으로 데이터를 복구하기 위함이다.

 

 

 

 

* 트랜잭션 필요성

1. A 은행에서 출금하여 B은행으로 송금한다고 가정하자.

2. 송금한느 중에 알 수 없는 오류가 발생하여 A은행 계좌에서 돈이 빠져 나갔는데 B은행 계좌에 입금되지 않았다.

3. 이때, 우리는 A은행 계좌의 출금을 취소하거나, 출금된 금액만큼 B은행 계좌로 다시 송금하면 된다.

4. 하지만 이 방법은 번거롭고 더 심한 오류를 발생시킬수 있다.

5. 그래서 생각해낸 해결책이, 거래가 성공적으로 모두 끝난 후에야 이를 완전한 거래로 승인하고, 거래 도중 뭔가 오류가 발생했을 때는 이 거래를 아예 처음부터 없었던 거래로 되돌리는 것이다.

6. 이렇게 거래의 안전성을 확보하는 방법이 트랜잭션이다.

7. 데이터베이스에선 테이블에서 데이터를 읽어 온 후 다른 테이블에 데이터를 입력하거나 갱신,

   삭제하는데 처리 도중 오류가 발생하면 모든 작업을 원상태로 되돌린다.

8. 데이터베이스에선 처리 과정이 모두 성공했을 때만 최종적으로 데이터베이스에 반영한다.

 

728x90
반응형

'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