본문 바로가기
DBMS(SQL)

트랜잭션(Transaction) (6일차)

by JoinInNoetic 2023. 10. 9.

◆ 트랜잭션

    - 쪼갤 수 없는 업무 처리의 최소 단위

    - 데이터베이스의 상태를 변화시키기 위해서 수행하는 작업의 단위

    - 질의어(SQL)을 이용하여 데이터베이스를 접근 하는 것을 의미

    - 작업의 단위는 SQL 한 문장이 아님

    - 작업 단위는 많은 SQL 명령문들을 사람이 정하는 기준에 따라 정하는 것을 의미

 

    ● 특징

        ▶ 원자성

            - 트랜잭션이 데이터베이스에 모두 반영되던가, 아니면 전혀 반영되지 않아야 한다는 것

        ▶ 일관성

            - 트랜잭션의 작업 처리 결과가 항상 일관성이 있어야 한다는 것

        ▶ 독립성

            - 둘 이상의 트랜잭션이 동시에 실행되고 있을때 다른 트랜잭션의 연산에 끼어들 수 없다는 점

            - 하나의 특정 트랜잭션이 완료될 때까지, 다른 트랜잭션이 특정 트랜잭션의 결과를 참조할 수 없다.

 

    ● 연산

        - COMMIT : 하나의 트랜잭션이 성공적으로 끝났고, 데이터베이스가 일관성 있는 상태에 있을 때,

            하나의 트랜잭션이 끝났다는 것을 알려주기 위해 사용하는 연산

        - Rollback : 하나의 트랜잭션 처리가 비정상적으로 종료되어 트랜잭션의 원자성이 깨진 경우,

            트랜잭션을 처음부터 다시 시작하거나 트랜잭션의 부분적으로만 연산이 완료된 결과를 다시 취소 시키는 연산

 

◆ TCL

    ● COMMIT

        - 정상적으로 종료되어 트랜잭션을 반영하는 연산

        - 자동으로 실행해줌

    ● ROLLBACK

        - 모든 변경 작업을 취소하고 이전 상태로 되돌리는 연산

        - COMMIT 이후의 작업들은 모두 사라짐

    ● LOCK

        - 다른 트랜잭션이 동시에 접근 못하게 제한

        - 자동으로 해줌

    ● SAVEPOINT

        - 트랜잭션을 작게 분할

        - ROLLBACK TO SAVEPOINT을 사용하여 지정한 곳까지 ROLLBACK

        - SAVEPOINT 후 COMMIT 연산을 하면 SAVEPOINT들은 모두 사라짐

        - SAVEPOINT는 여러 개 생성가능

    ● START TRANSACTION

        - 트랜잭션을 시작할 때 사용하는 명령

        - BEGIN이나 BEGIN WORK도 가능

 

◆ 실습