2012-11-22 3 views
1

database isolation 레벨에 대한 위키 문서에 따르면 4 가지 레벨이 서로 다른 잠금 구성과 일치합니다.데이터베이스의 읽기 및 쓰기 잠금

하지만 자물쇠는 무엇입니까? 데이터베이스가이 읽기 쓰기 잠금 메커니즘을 제공합니까? 아니면 읽기 쓰기 잠금이 격리 수준과 커밋에 기반한 추상화입니까?

이 분리 수준이 db 자체에서 어떻게 작동하는지에 대해 자세히 설명하는 것이 좋을 것입니다. 이것에 대해 조금 주저하십시오. 감사.

답변

1

격리 수준은 데이터베이스의 동시 액세스 및 데이터 변경에 대한 투명한 방식을 제공하는 방법을 추상화 한 것입니다. 데이터베이스를 격리 할 수있는 경우 다른 시나리오로 인해 일관성없는 상태가 될 수 없습니다.

예 : 은행 계좌 데이터베이스를 상상해보십시오. 단순하게 유지하려면 두 행이있는 테이블, 계좌 번호 및 총 잔액을 상상해보십시오.

누군가 다른 사람이 계정 2에서 계정 3 [프로세스 2]로 돈을 이체하는 동시에 계정 1에서 계정 2 [프로세스 1]로 돈을 이체하면 어떻게 될 수 있습니까? 먼저 [1]이 첫 번째이고, 계정 1과 2의 합계를 읽는 것으로 가정합니다. 그런 다음 [2]가 자신의 차례를 가져 와서 완전히 실행됩니다. [1]은 오래된 값으로 작업 중이므로 계정 2의 총계를 잘못된 값으로 설정합니다.

트랜잭션의 경우 [1]은 전체 절차가 완료 될 때까지 대기해야합니다. 보통 이것은 잠금으로 구현되므로 데이터베이스는 지금까지 사용했던 모든 것을 잠급니다.

+0

답장을 보내 주셔서 감사합니다.하지만 불행히도 격리 수준에 대한 몇 가지 하위 수준 세부 정보를 찾고있었습니다. –

+0

아, 죄송합니다. 질문에 대한 오해! – Argeman

+0

Nm, 귀하의 답변은 분명히 다른 사람을 도울 것입니다. –