ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Transaction (1) 정의 , ACID 특성
    CS-Theory/DB 2023. 8. 9. 23:29

    데이터베이스의 트랜잭션이란 , 데이터 베이스에서 수행하는 작업 또는 논리의 하나의 단위이다.

     

    운영체제로 부터 자원을 할당 받아 실행하는 작업의 단위인 프로세스와 유사한 정의 인것 같다.

     

    논리의 단위라는것이 중요하다 , 트랜잭션의 결과가 물리적으로 , 하드디스크에 변경이 된다라는걸 의미 하지 않는다.

     

    ???

     

    데이터 베이스에 WRITE 과 관련된 트랜잭션이 발생을 하면 , RAM에서의 결과를 COMMIT 이라는 명령어를 해야

    하드디스크에 변화가 생긴다.

     

     

    추가로 + ACID 의 개념이 들어가게 설명을 하자.

     

    데이터베이스의 트랜잭션이란 , ACID 속성이 있는 작업 그룹이며 , DB 의 어떤 변화가 있는 경우를 일컫는 말이다.

     

     

    정리 하자)

     

    데이터 베이스의 트랜잭션이란 ,

    ACID 속정이 있는 작업 그룹으로 DBMS에서 수행하는 작업 또는 논리의 하나의 단위이다.

     

    단순히 트랜잭션이 발생을 했다라고 해서 하드디스크에 바로 데이터가 변환 되는것이 아니라, commit 이란 명령어가 추가로 필요하며,

    DB 의 어떠한 변화가 있는 경우를 일컫는 말로 사용되기도 한다.

     

     

    ACID 

     

    Atomic : 원자성 

     

    물리에서 원자는 절때 쪼개지지 않는 성질을 가진다. 

     

    트랜잭션은 하나의 작업 단위(여러 명령들)안에서 모든 논리적인 과정이 전부 수행이 되어야 한다 .

     

    일부만 수행이 되는 것 따위는 존재 하지 않다. 

     

    모든 동작이 정상적으로 이루어지면 , db 에 반영하는 commit 명령이 수행이 되고 , 만약 모두 정상적으로 동작하지 않으면 원래의 상태로 돌아가는 rollback 이 발생한다.

    DBMS  동작을 추적하는 로깅이 

     

    Consistency : 일관성 

     

    DB의 데이터가 트랜잭션 이후에 항상 일관된 규칙을 따라야한다 . 대표적인 예시로 100만원중 50 만원을 다른 계좌로 옮겨도

    (트랜잭션이 발생) , 전체 금액이 일정한 것 처럼 , 데이터베이스의 규칙과 제약 조건을 따라야 한다.

     

    Isolation 고립성:

     

    한트랜잭션이 실행하는동안 중간결과를 다른 트랜잭션이 접근 할 수 없다.

    -> 작업 단위의 신뢰성을 지켜주는 특징이다.

    + 격리 수준을 통해 조정이 가능하다.  , 작은단위의 작업의 트랜잭션을 순차적으로 진행을 하였을때 cpu 의 빈번한 I/O

    로 작업의 효율이 떨어 질 수 도 있다.  동시성과 데이터 무결성의 tradeOff 를 고려하여 트랜잭션을 설정해야한다.

     

    Durability 지속성 :

    commit 된 트랜잭션의 결과는 시스템에 장애가 발생을 하여도 데이터 베이스에 데이터의 변화 결과가 지속이 되어야 한다.

     

     

     

     

     

     

    참고 ) 

     

    1. Learn Microsoft

    https://learn.microsoft.com/ko-kr/windows/win32/ktm/what-is-a-transaction

     

    2. [10분 테코톡] 🐤 샐리의 트랜잭션

    https://www.youtube.com/watch?v=aX9c7z9l_u8 

     

    'CS-Theory > DB' 카테고리의 다른 글

    정규화는 항상 옳은가 ? Join 은 정답일까?  (0) 2023.08.12
Designed by Tistory.