타오름
조각보
타오름
전체 방문자
오늘
어제
  • 조각보
    • DEVELOPER B 🌱
      • Programming
      • Java
      • Spring | SpringBoot
      • JPA
      • Database
      • DS | Algorithms
      • CS
      • Git | Github
      • IDE

블로그 메뉴

  • HOME
  • TAG
         
        

CALENDAR

        
«   2025/08   »
일 월 화 수 목 금 토
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
    

티스토리

hELLO · Designed By 정상우.
타오름

조각보

[SQLD] 트랜잭션 제어어 (TCL) 요약
DEVELOPER B 🌱/Database

[SQLD] 트랜잭션 제어어 (TCL) 요약

2021. 8. 29. 23:02

 

 

 

> 트랜잭션 

 

    - 트랜잭션은 데이터베이스의 논리적 연산단위

    - 트랜잭션이란 밀접히 관련되어 분리될수 없는 한 개 이상의 데이터베이스 조작을 가리킨다.

    - 하나의 트랜잭션에는 하나 이상의 SQL 문장이 포함된다.

    - 트랜잭션은 의미적으로 분한할 수 없는 최소의 단위

    - 그렇기 때문에 전부 적용하거나 전부 취소한다. (ALL or NOTHING)

    

 

> 트랜잭션 특성

 

특성 설명
원자성 트랜잭션에서 정의된 연산들은 모두 성공적으로 실행되던지 아니면 전혀 실행되지 않는 상태로 남아 있어야 한다.
일광성 트랜잭션이 실행 되기 전의 데이터베이스 내용이 잘못 되어 있지 않다면 트랜잭션이 실행된 이후에도 데이터베이스의 내용에 잘못이 있으면 안된다.
고립성 트랜잭션이 실행되는 도중에 다른 트랜잭션의 영향을 받아 잘못된 결과를 만들어서는 안된다
지속성 트랜잭션이 성공적으로 수행되면 그 트랜잭션이 갱신한 데이터베이스의 내용은 영구적으로 지속된다.

 

 

> TCL

 

    - 트랜잭션을 콘트롤하는 TCL 

    - 커밋(Commit) : 변경된 데이터를 데이터베이스에 영구적으로 반영하라

    - 롤백(ROLLBACK) : 변경된 데이터가 문제가 있으니 변경 전 데이터로 본귀하라

    - 저장점(SAVEPOINT) :  데이터 변경을 사전에 지정한 저장점까지만 롤백하라

    - COMMIT과 ROLLBACK을 사용함으로써 얻는 효과 : 데이터 무결성 보장, 영구적인 변경을 하기 전에 데이터의 변경 사항 확인 가능, 논리적으로 연관된 작업을 그룹핑하여 처리 가능

    - COMMIT이나 ROLLBACK 이전 데이터 상태 : 현재 사용자는 SELECT 문장으로 결과를 확인 가능하다. 다른 사용자는 현재 사용자가 수행한 명령의 결과를 볼 수 없다. 변경된 행은 잠금이 설정되어 다른 사용자가 변경할 수 없다. 

 

 

> COMMIT 

 

    - INSERT 문장, UPDATE 문장, DELETE 문장 사용 후에 일련의 변경 작업이 완료되었음을 데이터베이스에 알려주기 위해 사용한다.

    - 데이터에 대한 변경 사항이 데이터 베이스에 반영된다.

    - 이전 데이터는 영원히 잃어버리게 된다. (별도 로그 보관시 복구 가능)

    - 모든 사용자는 결과를 볼 수 있다.

    - 관련된 행에 대한 잠금이 풀리고, 다른 사용자들이 행을 조작할 수 있게 된다.

 

 

> ROLLBACK

 

    - 테이블 내 입력한 데이터나 수정한 데이터, 삭제한 데이터에 대하여 COMMIT 이전에는 변경 사항을 취소하는 것

    - 데이터에 대한 변경 사항은 취소된다.

    - 이전 데이터는 다시 재저장된다.

    - 관련된 행에 대한 잠금이 풀리고 다른 사용자들이 행을 조작할 수 있게 된다.

 

 

> SAVEPOINT

 

    - 트랜잭션에 포함된 전체 작업을 롤백하는것이 아니라 현 시점에서 미리 지정한 SAVEPOINT까지 트랜잭션의 일부만 롤백할 수 있다.

    - 복수의 저장점을 정의할 수 있으며 동일 이름으로 저장점을 정의했을 때는 나중에 정의한 저장점이 유효하다.

 

 

> COMMIT과 ROLLBACK

 

    - 트랜잭션은 트랜잭션의 대상이 되는 SQL문을 실행하면 자동으로 시작되고, COMMIT 또는 ROLLBACK을 실행한 시점에서 종료된다. 

    - 논리적으로 연관된 작업을 그룹핑하여 처리 가능

    - 영구적인 변경을 하기 전에 데이터의 변경 사항 확인 가능

    - 데이터 무결성 보장

    - 자동 커밋이 발생하는 경우 : DDL 문장을 실행하면 그 전후 시점, 데이터 베이스를 정상적으로 종료할 때, 애플리케이션의 이상 종료로 데이터베이스와의 접속이 단절되었을때

 

 

 

출처 : 한국데이터산업진흥원 게시자료

    'DEVELOPER B 🌱/Database' 카테고리의 다른 글
    • [SQLD] 함수(FUNCTION) 요약
    • [SQLD] WHERE 절 요약
    • [SQLD] 데이터 조작어 (DML) 요약
    • [SQLD] 데이터 정의어(DDL) 요약
    타오름
    타오름

    티스토리툴바