데이터베이스 트랜잭션 및 격리 수준의 네 가지 특성

트랜잭션 데이터베이스 : 작업 집합 개체 트랜잭션 데이터의 단일 논리 장치로 구성되어, 데이터베이스는 데이터베이스 궁극적 인 목표는 다른 일관성있는 상태로 하나의 일관된 상태에서 변환입니다.

거래의 네 가지 특성 (ACID) :

  • 포함 된 모든 데이터베이스 작업 원 자성의 자성 것들 중 하나를 모두 성공, 또는 모든 롤백 실패
  • 이전과 트랜잭션의 실행 후 일관성 일관성은 일관성있는 상태에 있어야합니다
  • 비즈니스 절연 격리 결과 않은 트랜잭션은 다른 트랜잭션에 표시되지 않습니다
  • 영구 내구성 일단 트랜잭션은 데이터베이스의 데이터에 대한 변경 사항을 영구적 것을 제출

데이터베이스 보안 문제, 읽기, 쓰기 :

  • 더러운 읽기 트랜잭션 데이터를 사용하지만, 아직, B는이 데이터에 액세스 할 수 다른 트랜잭션뿐만 아니라,이 데이터의 사용을 커밋되지되고있다.
  • 이들 둘 이상의 배의 중앙에 다수의 동작의 비 반복 판독 트랜잭션 데이터는, 데이터를 액세스하기 위해, 데이터 객체 B는 동작하고, 그 값은 두 동일한 트랜잭션에 리드되는 변경된 비 반복 판독 된 값이 동일하지 않은 이러한 데이터의 동작.
  • 팬텀은 트랜잭션이 현상이 독립적으로 수행하지 않습니다 생산 읽어 보시기 바랍니다. 읽기 라인 트랜잭션 복수의 삽입 또는 결과 세트 A를 수정하는 거래 방법을 삭제하는 검색 조건 및 기타 트랜잭션 B와 일치 한 다음 제출했다. 원래의 실행을 이끌이 결과는 실행 결과 B를 포함하는, 원래 두 무관, 그것은 환각 동일하다.

데이터베이스 (동시 트랜잭션)의 네 가지 격리 수준 :

  • 당신은 갱신 누락 방지하기 위해 다른 쓰기 트랜잭션을 방지하기 위해 커밋되지 않은 읽기 미트되지 않은 쓰기 트랜잭션을 읽을 수 있습니다. 그러나 다른 읽기 트랜잭션을 방지하지 않습니다.
  • 다른 거래를 방지 할 수 없습니다 거래를 읽고, 다른 읽기를 방지하고 거래를 작성합니다 최선을 다하고 읽을 제출 기록 된 것을 읽으십시오.
  • 반복 다른 쓰기 트랜잭션을 방지 할 수 있지만, 다른 읽기 트랜잭션을 방지하지 않습니다 반복 읽기 읽을 것을 읽었다. MySQL의 기본 격리 수준.
  • 직렬화 직렬화 팬텀 읽기는 피할 수 있습니다. 공유 잠금, 플러스 단독 쓰기 잠금을 읽기.

 문제를 해결할 수있는 네 가지 격리 수준은 다음과 같습니다 :

 

참조 :

https://blog.csdn.net/qq_34569497/article/details/79064208

 

추천

출처www.cnblogs.com/colin220/p/11433986.html