ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 트랜잭션(Transaction)과 ACID 특성
    EDI 관련 기술 용어 2022. 5. 4. 11:30

     

    업무를 하다보면 많이 나오는 용어인 트랜잭션에 대해 알아보도록 하겠습니다.

     


    트랜잭션(Transaction)이란?

     

     

    하나의 논리적 기능을 수행하기 위한 작업의 단위이자, 쪼갤 수 없는 업무의 최소단위입니다.

    예를 들어 행위가 분리되지 못하면 그걸 다 묶어서 하나의 작업 단위로 보는 것입니다.

    여러 개 작업을 하나로 묶은 실행 유닛으로, 특정 작업으로 시작해서 묶여 있는 모든 작업들을 다 완료해야 정상적으로 종료됩니다.

    예를 들어 하나의 트랜잭션 안에 속해 있는 여러 작업 중 단 하나라도 오류가 나게 되면, 이 트랜잭션에 속한 모든 작업은 실패한 것이 됩니다.

    하나의 트랜잭션은 실행을 마치면 commit(완료) 되거나, 처음부터 다시 시작하는 rollback(변경취소) 됩니다.

    완료가 되거나, 되지 못하는 걸로 나눠지기 때문에 트랜잭션은 미완료된 작업없이 모든 작업을 성공해야만 합니다.

    그래서 트랜잭션을 작업수행의 논리적 단위라고 합니다.

    영어로 간략하게 Tx라고 표기하기도 합니다.

    1초당 처리할 수 있는 트랜잭션의 개수는 TPS라고 합니다.

    - commit (커밋)

    작업의 트랜잭션이 성공적으로 끝났고, 데이터베이스가 일관된 상태로 완료된 것을 뜻합니다.

    커밋을 수행하면 하나의 트랜잭션 과정을 종료하는 것입니다.

    - rollback (롤백)

    트랜잭션 처리가 비정상적으로 종료되어, 데이터베이스의 일관성이 깨질 경우, 일부가 정상 처리되어도 모든 행위를 취소시켜 해당 트랜잭션을 재시작하거나 폐기합니다.

     

     

     

    트랜잭션의 목적

     

    트랜잭션은 데이터베이스(DB) 서버에 여러 클라이언트가 동시에 액세스하거나 응용프로그램이 갱신을 처리하는 과정에서 중단될 수 있는 경우 등 데이터 부정합을 방지하고자 할 때 사용합니다.

     

     

     

    트랜잭션의 조건 및 특성

     

     

    데이터베이스의 트랜잭션이 안전하게 수행되기 위해서는 ACID 조건을 충족해야 합니다.

    ACID란 Atomicity(원자성), Consistency(일관성), Isolation(고립성), Durability(지속성)의 앞 글자를 딴 약자로, 데이터베이스의 트랜잭션이 안전하게 수행되기 위한 4가지 필수적인 특성입니다.

     

     

    ACID 특징

     

    1. Atomicity(원자성)

    원자성은 트랜잭션이 데이터베이스에 모두 반영되거나 전혀 반영되지 않아야 하며, 작업이 부분적으로 실행되거나 중단되지 않는 것을 보장하는 것을 뜻합니다.

    All or Nothing의 개념으로서 작업 단위를 일부분만 실행하지 않는다는 것을 의미합니다.

    한 트랜잭션은 모두 완벽하게 성공하거나, 모두 실패하는 것입니다.

    10개의 명령어로 구성된 트랜잭션이 9개의 명령어가 완료되고 1개가 실패여도, 이는 무조건 실패로 간주됩니다.

    트랜잭션 내의 모든 명령은 반드시 완벽하게 수행되어야 하며, 중간에 끊기게 되면 어디서부터 다시 수행해야하는지 모르기 때문에 진행되다 멈추는 트랜잭션은 존재하지 않습니다.

    이는 트랜잭션이 최소 단위의 업무이기 때문입니다.

    하지만 트랜잭션의 길이가 길어지면, 오류가 발생하지 않은 부분도 다시 처음부터 작업을 수행해야하므로, 확실한 부분에 대해서는 롤백이 되지 않도록 save point(세이브포인트)를 지정할 수도 있습니다.

    여기서 세이브포인트는 임시저장 또는 부분저장과 같은 의미로 이해하시면 쉽습니다.

    2. Consistency(일관성)

    일관성은 트랜잭션 이후, 데이터나 시스템이 가지고 있는 고정요소나 상태가 수행 전과 후의 상태가 같아야 한다는 것입니다.

    트랜잭션을 수행해도 보존해야 할 일관성으로 기본 키, 외래 키 제약과 같은 무결성 제약 조건들과 비명시적인 일관성 조건들이 있습니다.

    3. Isolation(고립성)

    고립성은 하나의 트랜잭션 수행시, 다른 트랜잭션의 작업이 끼어들지 못하도록 보장하며 다른 트랜잭션의 영향 또는 간섭을 받지 않는 것입니다.

    동시에 여러 개의 트랜잭션이 실행될 때, 각 트랜잭션은 격리되어 있어 독립적으로 수행되기 때문에 다른 트랜잭션의 작업 내용을 알 수 없습니다.

    4. Durability(지속성)

    지속성은 하나의 트랜잭션이 성공적으로 수행되고 난 뒤, 해당 트랜잭션에 대한 로그가 남아서 저장되어야 하는 것을 말합니다.

    성공한 트랜잭션의 결과는 안정적으로 보존되어야 하며, 영구적으로 반영되야 합니다.

     

     


    [참고 자료]

     

    Transaction

    [데이터베이스] 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 단위로서, 데이터베이스 시스템에서 복구 및 병행 시행 시 처리되는 작업의 논리적 단위이다.하나의 트랜잭션은

    terms.naver.com

     

    트랜잭션 - 해시넷

    트랜잭션(transaction)이란 "쪼갤 수 없는 업무 처리의 최소 단위"를 말한다. 거래내역이라고도 한다. '트렌젝션'이 아니라 '트랜잭션'이 올바른 표기법이다. 영어로 간략히 Tx라고 표기하기도 한다.

    wiki.hash.kr


     

    ACID가 지켜져야만 여러 회사에서 발생하는 트랜잭션이 분리되고 비즈니스에서 사용이 가능합니다.

    자주 등장하는 용어이니, 잘 기억해두시면 좋습니다!

     

     

     

    'EDI 관련 기술 용어' 카테고리의 다른 글

    AS2 기능과 장점  (0) 2022.05.27
    AS2 정의  (0) 2022.05.20
    FTPS와 SFTP 비교하기  (0) 2022.04.29
    REST(Representational State Transfer)  (0) 2022.04.08
    SSH(Secure Shell)  (0) 2022.03.31

    댓글

Designed by CONNECT SERVICE