DB Transaction

Kim Dong Kyun·2023년 4월 3일
0
post-custom-banner
  1. "DB 데이터에 변화를 일으키는" 더이상 작게 나눌 수 없는 작업 단위를 의미한다. 그 작업들이 하나로 연결되어 있는 경우도 트랜잭션이라고 한다.
  • 트랜잭션이 연결되어야 하는 이유는?
    1) 키워드 : 데이터의 신뢰성(정합성, 무결성...) 보존을 위해.
    ex) 은행 통장 송금 로직
    2) DB에 여러번 커넥션을 여는 것에는 코스트가 따른다. 따라서 최소한의 DB 접근을 위해(부하 방지) - 스프링 기준임.
  1. 트랜잭션이 다른 작업들과 분리되어야 하는 이유?

  2. 트랜잭션의 속성?

원 A : 일부만 실행되고 종료되면 안된다.

일 C : DB 계층 관계나 컬럼 속성같은 값들이 일관되게 유지되어야 한다.

독 I : 둘 이상의 트랜잭션이 동시 실행 시 데이터 신뢰성 잃을 수 있으니, 수행중인 트랜잭션은 다른 트랜잭션이 참조 할 수 없게 해야 한다.

지 D : 어떤 문제가 생기더라도 영구히 DB에 반영되어야 한다.

  1. 일부만 실행되고 종료되면 안된다 ?

  2. BIGINT -> CHAR 바꾸기 가능할까?

<억까를 서로 해주자. 당황하지 않게>

  • 아이디어 -> 불가능하거나 답이 없는 문제를 물어봐서 DB에 대한 전반 지식을 체크하려는 질문들이 있다. 그 개념에 대해서 익숙한가? 를 물어보는거지...인터넷에 안나오는

-> 링크드 리스트에 인덱스 넣는 법 말하라고
-> 그럼 조회 최적화가 가능한가?
-> O(logn) 시간복잡도.

  1. TRANSACTION Isolation 사용?

  2. TRANSACTIONAL Isolation < 디폴트값은?

  3. TRANSACTIONAL 어노테이션 작동방식?


승범이의 나 피드백

  1. 영속성 유지하기 위해서 트랜잭션 로그를 남긴다. (DB에서 남겨짐)

  2. 트랜잭션 사용하는 이유 -> 독립성 설명에도 적용해보자.

post-custom-banner

0개의 댓글