출고예상일 안내
주문하신 상품이 한국에서 현지 배송을 위한 출고단계가 이루어질 것으로 예상되는 날짜입니다. 상품을 준비하는 과정에서 내부적인 사정으로 인해 출고예상일에 다소 오차가 생길 수 있습니다.
여러 상품(예약상품포함)을 함께 주문하신 경우 출고예상일이 가장 늦은 날짜에 맞춰 함께 배송됩니다.

ISBN : 9791191941128 / 384쪽 / 730g / 188 x 245 (㎜)
이 상품에 궁금하신점이 있으세요? 1:1상담문의

-
리카이푸, 천치우판
-
강수진
-
김지희(릴스 마법사 롱제이)
- 15,120 →15,119원
- 26,820 →26,819원
- 25,200 →25,199원
- 20,700 →20,699원
반디앤루니스 리뷰
■ 책을 쓴 목적
PostgreSQL과 MySQL 같은 오픈소스 DBMS의 시장 점유율이 빠르게 확산되면서, 개발자들은 이제 이기종 DBMS 환경을 당연하게 마주하게 되었다. 문제는 동일한 SQL과 트랜잭션 패턴이라도 DBMS마다 전혀 다른 결과가 나타날 수 있다는 사실을 많은 개발자가 충분히 인지하지 못한다는 점이다. 자신이 작성한 프로그램이 어떤 격리 수준에서 어떤 결과를 낳을지조차 모른 채 DB 프로그래밍을 수행한다는 것은 어불성설이며, 상황에 따라 시스템에 심각한 문제를 초래할 수 있다.
각 DBMS는 벤더가 굳이 알리고 싶어 하지 않는 고유의 취약점과 구현적 한계를 갖고 있으며, 이는 공식 문서만으로는 파악하기 어렵다. 이 책은 바로 이러한 숨겨진 특성들을 명확히 드러내고자 한다. Lock 메커니즘과 동시성 제어 방식의 장단점을 투명하게 비교함으로써, 개발자들이 다중 사용자 환경에서 발생하는 트랜잭션 이상 현상을 정확히 인지하고 효과적으로 제어할 수 있도록 돕는다.
궁극적으로 이 책을 통해 개발자들은 어떤 환경에서도 견고하고 신뢰할 수 있는 DB 프로그램을 설계할 수 있을 것이다.
■ 어떤 내용을 다루었나?
1장에서는 데이터 품질 저하의 주요 원인과 이를 방지하기 위한 동시성 제어의 중요성을 살펴본다.
2장에서는 Lock 기반 동시성 제어 모델과 다중 버전 동시성 제어 모델의 근본적인 차이점을 설명하고, 하나의 Select 문을 실행하는 과정에서 나타날 수 있는 비일관성 문제를 다룬다.
3장에서는 하나의 Update 문을 실행하는 과정에 나타날 수 있는 비일관성 현상을 설명하고, 이를 차단하기 위해 각 DBMS가 어떻게 동작하는지를 집중적으로 분석한다.
4장은 하나의 SQL 문을 넘어 트랜잭션 수준에서의 일관성을 조망하며, 격리 수준별로 발생할 수 있는 다양한 왜곡 현상과 해결 방안을 설명한다.
마지막 5장에서는 실무 시스템에서 실제로 적용할 수 있는 비관적/낙관적 동시성 제어, 데이터 누수 방지, 페이징 처리, 자원 요청 순서 정렬, 채번 동시성, 프로그램 병행 실행 제어 등 구체적인 동시성 제어 기법과 적용 사례들을 제시한다.
■ 이 책이 꼭 필요한 독자
1. 금융권(은행·증권·보험) 시스템 개발자
2. 대용량 트랜잭션 처리 시스템 개발자
3. 온디맨드(On-demand) 배치 프로그램 개발자
4. 이기종 DBMS 통합 운영 환경의 개발자
5. 아래 질문에 대한 답변이 명확하지 않은 개발자
SELECT 수행 중 일부 데이터가 변경되거나 추가된다면?
UPDATE 수행 중 일부 데이터가 변경되거나 추가된다면?
일련의 SQL을 수행하는 동안 일부 데이터가 변경되거나 추가된다면?
동시에 진행하던 두 트랜잭션 간 처리 순서가 뒤바뀐다면?
■ 스크립트 다운로드
실습 스크립트는 DBian 포럼(www.dbian.net)에서 다운로드할 수 있다. 좌측 메뉴에서 ‘[도서] DB 트랜잭션 동시성 제어’를 클릭한 후 ‘공지’를 확인하기 바란다.
■ 내욤문의 : www.dbian.net, www.sqlp.co.kr
출판사 리뷰

1장 트랜잭션과 데이터 품질
1.1 데이터 품질저하 원인
1.2 동시성 제어의 중요성 증가
1.3 데이터베이스 제약의 한계
1.4 파일 시스템과 DBMS
1.5 상충 관계
1.6 트랜잭션의 특징
1.7 일관성/격리성에 대한 개발자의 역할
1.8 동시성 제어
1.9 요약
2장 문장 수준 읽기 일관성
2.1 동시 트랜잭션에 의해 나타날 수 있는 이상 현상
2.2 커밋되지 않은 데이터 읽기를 허용할 때 발생하는 현상
2.3 Dirty Read의 전통적인 해법
2.4 완벽한 읽기 일관성 확보 방안
2.5 트랜잭션 격리 수준
2.6 Lock 기반 동시성 제어
2.7 다중 버전 동시성 제어
2.8 완벽하지 않은 격리 수준, Read Committed
2.9 Repeatable Read 및 Serializable 격리 수준
2.10 Predicate Lock
2.11 MVCC 모델에서 읽기 일관성이 보장되지 않는 사례
2.12 요약
3장 문장 수준 쓰기 일관성
3.1 문장 수준 쓰기 일관성
3.2 읽기 모드에 따른 갱신 연산 차이
3.3 Consistent 모드로 갱신할 때 생기는 현상
3.4 Current 모드로 갱신할 때 생기는 현상
3.5 Consistent 모드로 읽고, Current 모드로 갱신할 때 생기는 현상
3.6 Consistent 모드로 대상을 식별하고, Current 모드로 확인 후 갱신
3.7 Oracle 재시작 메커니즘
3.8 Oracle이 재시작 메커니즘을 사용하는 이유
3.9 Oracle은 왜 Update 조건절 값이 변경됐을 때만 재시작할까?
3.10 Full Scan Update
3.11 Repeatable Read 및 Serializable 격리 수준
3.12 MVCC 모델에서 일관성 없게 갱신하는 사례
3.13 요약
4장 트랜잭션 수준 일관성
4.1 트랜잭션 이상 현상
4.1.1 Non-Repeatable Read
4.1.2 Phantom Read
4.2 트랜잭션 격리 수준
4.3 Repeatable Read 격리성
4.3.1 조회만 하는 경우
4.3.2 조회한 값을 변경하는 경우
4.3.3 Repeatable Read 격리성 요약
4.4 Serializable 격리성
4.4.1 조회만 하는 경우
4.4.2 조회한 값을 변경하는 경우
4.4.3 Serializable 격리성 요약
4.5 직렬화 이상
4.5.1 쓰기 왜곡
4.5.2 PostgreSQL 직렬화 가능 스냅샷 격리
4.5.3 Select For Update를 활용한 쓰기 왜곡 방지
4.5.4 강한 직렬화
4.5.5 강한 직렬화 방안
4.6 요약
5장 트랜잭션 동시성 제어
5.1 비관적 동시성 제어
5.2 낙관적 동시성 제어
5.3 데이터 누수 방지
5.4 스냅샷 또는 중간 집계 데이터 활용
5.5 페이지네이션
5.6 선분이력 정합성 유지
5.7 자원 요청 순서 정렬
5.8 대기 없이 큐 데이터 인출
5.9 채번 동시성 높이기
5.10 자율 트랜잭션 활용
5.11 외래 키 제약 구현
5.12 프로그램 병행 실행 제어
5.13 데이터베이스 설계 변경
5.14 One SQL 구현 및 SQL 튜닝





































