목차

옮긴이 글
한국어판 서문
저자 서문

I. 기본 개념
01. 왜 NoSQL인가?
1.1 관계형 데이터베이스의 가치
1.1.1 데이터 저장
1.1.2 동시성
1.1.3 통합
1.1.4 표준 모델
1.2 객체-관계 불일치
1.3 애플리케이션 데이터베이스와 통합 데이터베이스
1.4 클러스터의 공격
1.5 NoSQL의 출현
1.6 요점

02. 집합적 데이터 모델
2.1 집합
2.1.1 관계와 집합의 예
2.1.2 집합 지향의 결과
2.2 키-값 모델과 문서 데이터 모델
2.3 칼럼 패밀리 저장소
2.4 집합 지향 데이터베이스 요약
2.5 더 읽을거리
2.6 요점

03. 데이터 모델 상세
3.1 관계
3.2 그래프 데이터베이스
3.3 스키마 없는 데이터베이스
3.4 구체화 뷰
3.5 데이터 접근을 위한 모델링
3.6 요점

04. 분산 모델
4.1 단일 서버
4.2 샤딩
4.3 마스터-슬레이브 복제
4.4 피어-투-피어 복제
4.5 샤딩과 복제의 결합
4.6 요점

05. 일관성
5.1 업데이트 일관성
5.2 읽기 일관성
5.3 일관성 완화
5.3.1 CAP 정리
5.4 지속성 완화
5.5 정족수
5.6 더 읽을거리
5.7 요점

06. 버전 스탬프
6.1 업무 트랜잭션과 시스템 트랜잭션
6.2 다중 노드에서의 버전 스탬프
6.3 요점

7. 맵-리듀스
7.1 맵-리듀스 기본 개념
7.2 분할과 결합
7.3 맵-리듀스 계산 조합
7.3.1 2단계 맵-리듀스 예제
7.3.2 점증적 맵-리듀스
7.4 더 읽을거리
7.5 요점

II. 적용
08. 키-값 데이터베이스
8.1 키-값 저장소란?
8.2 키-값 저장소 특징
8.2.1 일관성
8.2.2 트랜잭션
8.2.3 조회 기능
8.2.4 데이터 구조
8.2.5 확장성
8.3 적절한 사용처
8.3.1 세션 정보 저장
8.3.2 사용자 프로파일, 설정
8.3.3 장바구니 데이터
8.4 사용하지 말아야 할 때
8.4.1 데이터 간의 관계가 있는 경우
8.4.2 다중 연산 트랜잭션을 사용하는 경우
8.4.3 데이터로 조회하는 경우
8.4.4 집합에 의한 연산

09. 문서 데이터베이스
9.1 문서 데이터베이스란?
9.2 특징
9.2.1 일관성
9.2.2 트랜잭션
9.2.3 가용성
9.2.4 조회 기능
9.2.5 확장성
9.3 적절한 사용처
9.3.1 이벤트 로깅
9.3.2 콘텐츠 관리 시스템, 블로깅 플랫폼
9.3.3 웹 분석 또는 실시간 분석
9.3.4 전자상거래 애플리케이션
9.4 사용하지 말아야 할 때
9.4.1 여러 연산에 걸친 복잡한 트랜잭션
9.4.2 변화하는 집합 구조에 대한 쿼리

10. 칼럼 패밀리 저장소
10.1 칼럼 패밀리 데이터 저장소란?
10.2 특징
10.2.1 일관성
10.2.2 트랜잭션
10.2.3 가용성
10.2.4 조회 기능
10.2.5 확장성
10.3 적절한 사용처
10.3.1 이벤트 로깅
10.3.2 콘텐츠 관리 시스템, 블로깅 플랫폼
10.3.3 카운터
10.3.4 기간 만료
10.4 사용하지 말아야 할 때

11. 그래프 데이터베이스
11.1 그래프 데이터베이스란?
11.2 특징
11.2.1 일관성
11.2.2 트랜잭션
11.2.3 가용성
11.2.4 쿼리 기능
11.2.5 확장성
11.3 적절한 사용처
11.3.1 연결된 데이터
11.3.2 라우팅, 디스패치, 위치 기반 서비스
11.3.3 추천 엔진
11.4 사용하지 말아야 할 때

12. 스키마 전환
12.1 스키마 변경
12.2 관계형 데이터베이스에서의 스키마 변경
12.2.1 신규 프로젝트에서의 전환
12.2.2 레거시 프로젝트의 전환
12.3 NoSQL 데이터 저장소에서의 스키마 변경
12.3.1 점증적 전환
12.3.2 그래프 데이터베이스에서의 전환
12.3.3 집합 구조 변경
12.4 더 읽을거리
12.5 요점

13. 다중 저장소 지속성
13.1 이종 데이터 저장소의 필요성
13.2 다중 데이터 저장소 사용
13.3 서비스를 통한 데이터 접근
13.4 더 좋은 기능을 위한 확장
13.5 적절한 기술 선택
13.6 다중 저장소 지속성 사용 시 고려 사항
13.7 배포 복잡성
13.8 요점

14. NoSQL을 넘어
14.1 파일 시스템
14.2 이벤트 소싱
14.3 메모리 이미지
14.4 버전 관리
14.5 XML 데이터베이스
14.6 객체 데이터베이스
14.7 요점

15. 데이터베이스 선정
15.1 프로그래머 생산성
15.2 데이터 접근 성능
15.3 관계형 데이터베이스 계속 사용하기
15.4 위험 분산
15.5 요점
15.6 결론
참고 문헌
찾아보기