동시 작업으로 인해 발생하는 데이터 불일치에는 수정 사항 손실, 반복 불가능한 읽기, "더러운" 데이터 읽기 등이 포함됩니다. 이 세 가지 현상이 나타나는 이유는 동시 작업이 트랜잭션의 격리를 파괴하기 때문입니다. 이러한 데이터 불일치를 처리하기 위한 주요 기술은 차단, 타임스탬프 및 낙관적 제어 방법입니다.
동시 작업으로 인해 어떤 데이터 불일치가 발생합니까? ( )
A. 수정 사항 손실, 반복 불가능한 읽기, 더티 읽기, 교착 상태
B. 반복 불가능 읽기, 더티 읽기, 교착 상태
C. 수정 사항 손실, 더티 읽기, 교착 상태
D. 손실된 수정, 반복 불가능한 읽기, 더티 읽기
정답: D
답변 분석:
트랜잭션은 동시성 제어의 기본 단위입니다. 트랜잭션의 ACID 특성을 보장하는 것은 트랜잭션 처리의 중요한 작업입니다. 및 트랜잭션 ACID 특성 손상이 발생할 수 있는 원인 중 하나는 여러 트랜잭션에 의한 데이터베이스의 동시 작업으로 인해 발생합니다.
동시 작업으로 인해 발생하는 주요 데이터 불일치에는 수정 사항 손실, 반복 불가능한 읽기, "더러운" 데이터 읽기 등이 있습니다.
1. 수정 사항 손실
두 트랜잭션 T1과 T2가 동일한 데이터를 읽고 수정했습니다. T2가 제출한 결과가 T1이 제출한 결과를 파괴하여 T1의 수정 사항이 손실되었습니다. 일반적인 예: 비행기표나 기차표 구매.
2. 반복 불가능 읽기
반복 불가능 읽기는 트랜잭션 T1이 데이터를 읽은 후 트랜잭션 T2가 업데이트 작업을 수행하여 T1이 이전 읽기 결과를 재현할 수 없음을 의미합니다.
다음 세 가지 상황으로 나뉩니다.
(1) 트랜잭션 T1이 특정 데이터를 읽은 후 트랜잭션 T2가 이를 수정합니다. 트랜잭션 T1이 데이터를 다시 읽으면 이전 시간과 다른 값을 얻습니다.
(2) 트랜잭션 T1이 특정 데이터를 읽은 후 트랜잭션 T2가 그 안에 있는 레코드를 삭제합니다. 트랜잭션 T1이 데이터를 다시 읽으면 일부 레코드가 신비롭게 사라진 것을 발견합니다.
(3) 트랜잭션 T1이 특정 데이터를 읽은 후 트랜잭션 T2가 몇 가지 새로운 레코드를 삽입합니다. 트랜잭션 T1이 데이터를 다시 읽으면 더 많은 레코드가 있음을 발견합니다.
마지막 두 가지 작업을 팬텀 현상이라고 합니다.
3. "더티" 데이터 읽기
"더티" 데이터를 읽으려면 트랜잭션 T1이 특정 데이터를 수정하고 이를 디스크에 다시 쓰면 됩니다. 트랜잭션 T2가 특정 데이터를 읽은 후 어떤 이유로든 작업을 취소합니다. 이때 T2가 읽은 데이터는 데이터베이스의 데이터와 일치하지 않습니다. 이를 "더티" 데이터 읽기라고 합니다.
위 세 가지 현상이 나타나는 이유는 동시 작업이 트랜잭션의 격리를 파괴하기 때문입니다. 이러한 데이터 불일치를 처리하기 위한 주요 기술은 차단, 타임스탬프 및 낙관적 제어 방법입니다.
더 많은 관련 지식을 보려면 PHP 중국어 웹사이트를 방문하세요!
위 내용은 동시 작업으로 인해 발생하는 세 가지 유형의 데이터 불일치는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!