chapter 01 개요
1.1 질문으로 시작하자
1.2 데이터베이스 유형
관계형
키-값 스토어
컬럼형
문서형
그래프형
폴리글롯
1.3 진보와 증가
chapter 02 PostgreSQL
2.1 Post?greS?Q?L 개요
2.2 첫째 날: 릴레이션, CRUD, 조인
SQL 시작하기
인덱스를 사용한 빠른 검색
첫째 날 요약 복습하기
2.3 둘째 날: 고급 쿼리와 실행 코드 및 룰
집계 함수
그룹으로 분류하기
윈도우 함수
트랜잭션
저장 프로시저
트리거
뷰
룰이란?
crosstab( ) 함수
둘째 날 요약 복습하기
2.4 셋째 날: 전문(fulltext)과 다차원 큐브
텍스트 검색
전문(fulltext) 검색
문자열 검색 방법을 결합해서 사용하기
다차원 하이퍼큐브
셋째 날 요약 복습하기
2.5 마무리
PostgreSQL의 장점들
PostgreSQL의 단점들
2장을 마치면서
chapter 03 Riak
3.1 Riak은 웹을 사랑한다
3.2 첫째 날: CRUD 및 링크와 MIME
REST와 cURL을 쓰는 게 제일 좋다
버킷에 값 쓰기
링크
Riak의 MIME 타입
첫째 날 요약 복습하기
3.3 둘째 날: Mapreduce와 서버 클러스터
데이터 생성 스크립트
Mapreduce 개요
Riak의 mapreduce 처리
일관성과 지속성
둘째 날 요약 복습하기
3.4 셋째 날: 충돌 해결과 Riak의 기능 확장
벡터 클럭을 사용해서 충돌 해결하기
Riak의 기능 확장
셋째 날 요약 복습하기
3.5 마무리
Riak의 장점들
Riak의 단점들
Riak의 CAP
3장을 마치면서
chapter 04 HBase
4.1 HBase 개요
4.2 첫째 날: CRUD와 테이블 관리
HBase 구성하기
HBase 쉘
테이블 생성하기
데이터의 추가와 변경 및 검색
테이블 변경하기
프로그램으로 데이터 추가하기
첫째 날 요약 복습하기
4.3 둘째 날: 대용량의 빅(Big) 데이터로 작업하기
데이터 가져오기와 스크립트 호출하기
XML 스트리밍하기
위키피디아 스트리밍 하기
데이터 압축과 블룸 필터
스크립트를 실행하자!
영역 개요와 디스크 사용 내역 보기
영역의 궁금 사항들
테이블을 스캔하여 다른 테이블 만들기
스캐너 만들기
스크립트 실행하기
작업 결과 살펴보기
둘째 날 요약 복습하기
4.4 셋째 날: 클라우드로 가자
Thrift를 사용해서 HBase 애플리케이션 개발하기
Whirr 개요
EC2 사용을 위한 설정
Whirr 준비하기
클러스터 구성하기
클러스터 런칭하기
클러스터에 연결하기
클러스터 끝내기
셋째 날 요약 복습하기
4.5 마무리
HBase의 장점들
HBase의 단점들
HBase의 CAP
4장을 마치면서
chapter 05 MongoDB
5.1 거대한 몽고: Hu(mongo)us
5.2 첫째 날: CRUD와 중첩
명령행
Mongo의 문서 읽기
다양한 검색
변경
참조
삭제
커스텀 코드로 읽기
첫째 날 요약 복습하기
5.3 둘째 날: 인덱싱, 그룹화, Mapreduce
인덱스로 빠른 검색하기
집계 쿼리
서버 측 명령
전환
Mapreduce
둘째 날 요약 복습하기
5.4 셋째 날: 복제 세트, 샤딩, 지리공간, GridFS
복제 세트
샤딩
지리공간 쿼리
GridFS
셋째 날 요약 복습하기
5.5 마무리
Mongo의 장점들
Mongo의 단점들
5장을 마치면서
chapter 06 CouchDB
6.1 긴 의자에서 느긋하게 쉬
CouchDB와 MongoDB 비교하기
6.2 첫째 날: CRUD, Futon, cURL
Futon과 친해지기
cURL을 사용해서 REST 기반의 CRUD 연산하기
GET으로 문서 읽기
POST로 문서 생성하기
PUT으로 문서 변경하기
DELETE로 문서 삭제하기
첫째 날 요약 복습하기
6.3 둘째 날: 뷰의 생성과 쿼리
뷰를 사용하여 문서 액세스하기
첫 번째 뷰 작성하기
설계 문서로 뷰를 저장하기
이름으로 음악가 찾기
이름으로 앨범 찾기
우리의 커스텀 뷰(음악가 뷰와 앨범 뷰)로 쿼리하기
Ruby를 사용해서 CouchDB로 데이터 가져오기
둘째 날 요약 복습하기
6.4 셋째 날: 고급 뷰와 Changes API 및 데이터 복제
Reduce 처리를 하는 고급 뷰 생성하기
CouchDB의 변경사항 감시하기
CouchDB에서 데이터 복제하기
셋째 날 요약 복습하기
6.5 마무리
Couch DB의 장점들
Couch DB의 단점들
6장을 마치면서
chapter 07 Neo4J
7.1 Neo4J는 화이트보드에 친화적이다
7.2 첫째 날: 그래프, Groovy, CRUD
Neo4j의 웹 인터페이스
Gremlin으로 Neo4j 사용하기
Pipe의 위력
파이프라인 vs. 꼭지점
스키마가 없는 소셜 데이터
Gremlin 스텝
도메인에 특화된 스텝
데이터 변경과 삭제
첫째 날 요약 복습하기
7.3 둘째 날: REST와 인덱스 및 알고리즘
REST 사용하기
빅 데이터
그래프 알고리즘들
둘째 날 요약 복습하기
7.4 셋째 날: 분산 고가용성
트랜잭션
고가용성
백업
셋째 날 요약 복습하기
7.5 마무리
Neo4j의 장점들
Neo4j의 단점들
Neo4j의 CAP
7장을 마치면서
chapter 08 Redis
8.1 데이터 구조 서버 스토어
8.2 첫째 날: CRUD와 데이터 타입
시작하기
트랜잭션
복잡한 데이터 타입
정렬 셋
만기
데이터베이스 네임스페이스
그 밖의 다른 명령어들
첫째 날 요약 복습하기
8.3 둘째 날: 고급 기능의 사용
간단한 인터페이스
발행-구독
서버 정보 조회
Redis의 구성
마스터-슬레이브 복제
데이터 덤프
Redis의 클러스터
블룸 필터
둘째 날 요약 복습하기
8.4 셋째 날: 다른 데이터베이스와 작업하기
폴리글롯 퍼시스턴스
데이터 채우기
데이터 간의 관계 저장
밴드 정보 조회 서비스
셋째 날 요약 복습하기
8.5 마무리
Redis의 장점들
Redis의 단점들
8장을 마치면서
chapter 09 이 책을 마무리하며
9.1 데이터베이스 유형
관계형
키-값
컬럼형
문서형
그래프형
9.2 선택하기
9.3 이제 어디로 가야하나?
APPENDIX A 데이터베이스 요약 일람표
APPENDIX B CAP 원리
요즘은 어딜 가나 ‘빅 데이터’ 이야기다. 새로운 석유라고 일컬어지는 빅 데이터들을 도대체 어디에 저장하고 어떻게 처리할 것인가?
여기서 7개 데이터베이스의 매력적인 기능과 완벽한 쓰임새를 소개한다!
이 책에서는 PostgreSQL, Riak, HBase, MongoDB, CouchDB, Neo4J, Redis의 7개 데이터베이스들의 핵심 개념과 기능을 구체적으로 소개한다.
또한, 데이터베이스들이 사용하는 ‘관계형’, ‘키/값’, ‘컬럼형’, ‘문서형’, ‘그래프형’ 5개의 데이터 모델을 자세히 알아볼 것이다.
더불어 일관성과 가용성 간의 트레이드 오프를 이해하고, 언제 어떻게 사용하면 좋은지 보여준다. 우리의 모든 요구를 한꺼번에 충족하는 데이터베이스를 선택하거나, 여러 종류의 데이터베이스를 함께 사용하여 시너지 효과를 갖는 플랫폼을 만든다.
NoSQL 데이터베이스에 관한 친절한 설명과 흥미로운 예제 수록!
MongoDB와 CouchDB의 눈에 띄는 차이점은 무엇이며, 아마존 다이나모 기반인 Riak의 핵심은 무엇인지 살펴볼 것이다. 또한 Redis로 애플리케이션 실행이 더욱 빨라지게 만들고, Neo4J로 더 많은 데이터가 연결되게 한다. 요즘 대두되고 있는 빅 데이터 문제들을 MapReduce를 사용해서 해결하고, 아마존의 EC2같이 확장성 좋은 클라우드 서비스를 사용해서 서버 클러스터를 만들 것이다.
각 데이터베이스가 어떤 영역의 문제에 가장 적합한지, 각각의 매력적인 기능들을 돋보이게 해주는 실제 데이터 문제들을 살펴본다.