트랜잭션 편집하기

이동: 둘러보기, 검색

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 아이디(ID)으로 기록되고, 다른 장점도 있습니다.

편집을 되돌릴 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 당신의 편집
121번째 줄: 121번째 줄:
  
 
따라서 병행제어가 필요한데, 병행제어가 필요한 이유는 다음과 같다.
 
따라서 병행제어가 필요한데, 병행제어가 필요한 이유는 다음과 같다.
* '''분실된 업데이트 문제'''(The Lost Update Problem) : 두 개의 트랜잭션이 동일한 아이템에 접근하여 서로의 연산이 중첩될 때 결과적으로 올바르지 않은 값이 저장될 수 있다.
+
* '''분실 된 업데이트 문제'''(The Lost Update Problem) : 두 개의 트랜잭션이 동일한 아이템에 접근하여 서로의 연산이 중첩될 때 결과적으로 올바르지 않은 값이 저장될 수 있다.
* '''임시 업데이트 문제'''(The Temporary Update Problem) : 한 트랜잭션이 값을 업데이트하다가 중간에 트랜잭션이 실패하였다. 하지만 롤백하기 이전에 다른 트랜잭션이 값을 읽게 되면 올바르지 않은 값을 읽는 것이다.
+
* '''임시 업데이트 문제'''(The Temporary Update Problem) : 한 트랜잭션이 값을 업데이트를 하다가 중간에 트랜잭션이 실패하였다. 하지만 롤백 하기 이전에 다른 트랜잭션이 값을 읽게 되면 올바르지 않은 값을 읽는 것이다.
* '''잘못된 요약 문제'''(The Incorrect Summary Problem) : 한 트랜잭션이 aggregate 함수(Sum, Max, Min 등)를 실행하고 있는데, 다른 트랜잭션이 이 값들 중 하나를 업데이트하고 있을 때 aggregate 트랜잭션의 값이 업데이트되기 이전을 사용할 때이다.
+
* '''잘못된 요약 문제'''(The Incorrect Summary Problem) : 한 트랜잭션이 aggregate 함수(Sum, Max, Min등)를 실행하고 있는데, 다른 트랜잭션이 이 값들 중 하나를 업데이트 하고 있을 때 aggregate 트랜잭션의 값이 업데이트 되기 이전을 사용할 때이다.
 
+
데이터베이스 병행처리의 목적은 1) 트랜잭션의 충돌을 방지하기 위해 고립성을 강제하기 위함 2) 데이터베이스의 일관성을 보존하기 위함 3) read-write 또는 wriite-write 충돌을 막기 위함의 세 가지로서, 스케줄의 진정한 목적은 충돌 스케줄을 찾아 직렬화 스케줄을 만드는 것이다.<ref name="트랜잭션3">jhkang-dev, 〈[https://jhkang-tech.tistory.com/103 (데이터베이스) 트랜잭션]〉, 《티스토리》, 2018-11-28</ref>
데이터베이스 병행처리의 목적은 1) 트랜잭션의 충돌을 방지하기 위해 고립성을 강제하기 위함, 2) 데이터베이스의 일관성을 보존하기 위함, 3) read-write 또는 write-write 충돌을 막기 위함의 세 가지로서, 스케줄의 진정한 목적은 충돌 스케줄을 찾아 직렬화 스케줄을 만드는 것이다.<ref name="트랜잭션3">jhkang-dev, 〈[https://jhkang-tech.tistory.com/103 (데이터베이스) 트랜잭션]〉, 《티스토리》, 2018-11-28</ref>
 
  
 
== 록킹 ==
 
== 록킹 ==

위키원에서의 모든 기여는 다른 기여자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요. 만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다 (자세한 사항은 위키원:저작권 문서를 보세요). 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 | 편집 도움말 (새 창에서 열림)