2016-05-31 3 views
0

RDBMS 데이터베이스에 테이블을 만들고 정수 필드를 생성한다고 가정합니다. 이제 두 클라이언트가 동일한 레코드에 대해 정수 필드 값을 동시에 변경한다고 가정합니다. 예를 들어 클라이언트 C1이 레코드를 1로 설정하고 동시에 클라이언트 C2는 동일한 레코드 R1에 대해 2로 설정합니다.데이터베이스 트랜잭션 무결성 및 원 자성

  1. 필드의 값은 무엇입니까? 이 값은 트랜잭션 내에서이 값을 각각 C1 및 C2로 어떻게 설정합니까?
  2. C1과 C2 모두 트랜잭션 내에서 값을 설정하면 양쪽 모두 커밋이 성공합니까?

(질문 1에 대한 답변을 수행하고 2는 RDBMS에 의존하거나이 시스템이 동작하는 방법에 대한 규칙이다?)

답변

0

성공하거나 실패 할 수 있습니다 트랜잭션의 커밋합니다. 동일한 필드에 쓰는 두 개의 병렬 트랜잭션의 경우 하나만 성공할 수 있습니다.

그러나 RDBMS에 따라 트랜잭션이 "1로 설정"대신 "1로 증가"할 수 있으며이 경우 충돌이 발생하지 않으며 두 트랜잭션이 모두 진행될 수 있습니다.

+0

하나만 성공하면 각 RDBMS에 종속됩니까? 아니면 모든 RDBMS가 무작위로 실패합니까? –

+0

고려중인 RDBMS의 문서를 읽으십시오. – PureW

관련 문제