본문 바로가기
Programming/MariaDB

Maria DB 이론_ 09. 트랜잭션

by yoon9i 2024. 3. 6.
/*
    <트랙잭션>

    ◎ 트랜잭션(Transaction)은 두개 이상의 DML 쿼리에 대해 단 하나라도 실행에 실패한 경우 동일한
      트랜잭션 컨텍스트 내에 있는 이전의 실행 결과를 취소하기 위해 사용한다.
    ◎ 하나의 실행 단위는 주로 실행 시간 차이가 없다시피 하고 하나의 서비스 로직이라는(추상적인)
      범위 내에서 지정한다.
    ◎ 자바 언어를 이용한 트랜잭션 구현의 예는 아래와 같다.

        try (Connection connection = DatabaseUtil.getConnection()){
            connection.setAutoCommit(false); // 자동 커밋 해제
            try{
                // DBMS CRUD           // 할일 하기
                connection.commit();   // 모든 쿼리가 정상 작동한 후 commit 호출
            } catch (SQLException e) {
                connection.rollback(); // 모든 변경 사항 취소
                throw e;               // 보다 상위 catch 스코프로 예외 전달
            }
        } catch (SQLException e) {
            // 공통적인 예외 처리
        }

        - 자동 커밋이 해제된(트랜잭션 컨텍스트가 시작된) 시점 부터 발생하는 모든 변경 사항은 임시 공간에
          저장되기 때문에 반드시 commit() 혹은 rollback() 을 호출하여 플러쉬(Flush)해주어야 한다.
          그렇지 않게 된다면, 임시 공간에 영원히(서버 꺼지면 날아감) 남음으로 리소스 리키지(Leakage)
          가 발생하게 된다.
*/

'Programming > MariaDB' 카테고리의 다른 글

Maria DB 이론_ 08. 제약조건  (0) 2024.03.06
Maria DB 이론_ 07. 함수  (0) 2024.03.06
Maria DB 이론_ 06. 연산자  (0) 2024.03.06
Maria DB 이론_ 05. 레코드  (0) 2024.03.06
Maria DB 이론_ 04. 테이블 및 열  (0) 2024.03.06