Table of Contents for
Seven Databases in Seven Weeks, 2nd Edition

Version ebook / Retour

Cover image for bash Cookbook, 2nd Edition Seven Databases in Seven Weeks, 2nd Edition by Jim Wilson Published by Pragmatic Bookshelf, 2018
  1. Title Page
  2. Seven Databases in Seven Weeks, Second Edition
  3. Seven Databases in Seven Weeks, Second Edition
  4. Seven Databases in Seven Weeks, Second Edition
  5. Seven Databases in Seven Weeks, Second Edition
  6.  Acknowledgments
  7.  Preface
  8. Why a NoSQL Book
  9. Why Seven Databases
  10. What’s in This Book
  11. What This Book Is Not
  12. Code Examples and Conventions
  13. Credits
  14. Online Resources
  15. 1. Introduction
  16. It Starts with a Question
  17. The Genres
  18. Onward and Upward
  19. 2. PostgreSQL
  20. That’s Post-greS-Q-L
  21. Day 1: Relations, CRUD, and Joins
  22. Day 2: Advanced Queries, Code, and Rules
  23. Day 3: Full Text and Multidimensions
  24. Wrap-Up
  25. 3. HBase
  26. Introducing HBase
  27. Day 1: CRUD and Table Administration
  28. Day 2: Working with Big Data
  29. Day 3: Taking It to the Cloud
  30. Wrap-Up
  31. 4. MongoDB
  32. Hu(mongo)us
  33. Day 1: CRUD and Nesting
  34. Day 2: Indexing, Aggregating, Mapreduce
  35. Day 3: Replica Sets, Sharding, GeoSpatial, and GridFS
  36. Wrap-Up
  37. 5. CouchDB
  38. Relaxing on the Couch
  39. Day 1: CRUD, Fauxton, and cURL Redux
  40. Day 2: Creating and Querying Views
  41. Day 3: Advanced Views, Changes API, and Replicating Data
  42. Wrap-Up
  43. 6. Neo4J
  44. Neo4j Is Whiteboard Friendly
  45. Day 1: Graphs, Cypher, and CRUD
  46. Day 2: REST, Indexes, and Algorithms
  47. Day 3: Distributed High Availability
  48. Wrap-Up
  49. 7. DynamoDB
  50. DynamoDB: The “Big Easy” of NoSQL
  51. Day 1: Let’s Go Shopping!
  52. Day 2: Building a Streaming Data Pipeline
  53. Day 3: Building an “Internet of Things” System Around DynamoDB
  54. Wrap-Up
  55. 8. Redis
  56. Data Structure Server Store
  57. Day 1: CRUD and Datatypes
  58. Day 2: Advanced Usage, Distribution
  59. Day 3: Playing with Other Databases
  60. Wrap-Up
  61. 9. Wrapping Up
  62. Genres Redux
  63. Making a Choice
  64. Where Do We Go from Here?
  65. A1. Database Overview Tables
  66. A2. The CAP Theorem
  67. Eventual Consistency
  68. CAP in the Wild
  69. The Latency Trade-Off
  70.  Bibliography
  71. Seven Databases in Seven Weeks, Second Edition

Appendix 1
Database Overview Tables

This book contains a wealth of information about each of the seven databases we discuss: PostgreSQL, HBase, MongoDB, CouchDB, Neo4j, DynamoDB, and Redis. In the pages that follow, you’ll find tables that tally up these databases along a number of dimensions to present an overview of what’s covered in more detail elsewhere in the book. Although the tables are not a replacement for a true understanding, they should provide you with an at-a-glance sense of what each database is capable of, where it falls short, and how it fits into the modern database landscape.

Genre

Version

Datatypes

Data Relations

PostgreSQL

Relational

9.1

Predefined and typed

Predefined

HBase

Columnar

1.4.1

Predefined and typed

None

MongoDB

Document

3.6

Typed

None

CouchDB

Document

2.1.1

Typed

None

Neo4j

Graph

3.1.4 Enterprise

Untyped

Ad hoc (Edges)

DynamoDB

Key-value (or “key-value plus,” for reasons explained in chapter 7)

API version 2012-08-10

Typed

Predefined tables (plus support for arbitrary fields)

Redis

Key-value

4.0

Semi-typed

None

Standard Object

Written in Language

Interface Protocol

 HTTP/REST

PostgreSQL

Table

C

Custom over TCP

No

HBase

Columns

Java

Thrift, HTTP

Yes

MongoDB

JSON

C++

Custom over TCP

Simple

CouchDB

JSON

Erlang

HTTP

Yes

Neo4j

Hash

Java

HTTP

Yes

DynamoDB

Table

Unknown

JSON over HTTP

Yes

Redis

String

C/C++

Simple text over TCP

No

 

Ad Hoc Query

Mapreduce

Scalable

Durability

PostgreSQL

SQL

No

Cluster (via add-ons)

ACID

HBase

Weak

Hadoop

Datacenter

Write-ahead logging

MongoDB

Commands, mapreduce

JavaScript

Datacenter

Write-ahead journaling, Safe mode

CouchDB

Temporary views

JavaScript

Datacenter (via BigCouch)

Crash-only

Neo4j

Graph walking, Cypher, search

No (in the distributed sense)

Cluster (via HA)

ACID

DynamoDB

Limited range of SQL-style queries

No

Multi-datacenter

ACID

Redis

Commands

No

Cluster (via master-slave)

Append-only log

Secondary Indexes

 Versioning

 Bulk Load

Very Large Files

PostgreSQL

Yes

No

COPY command

BLOBs

HBase

No

Yes

No

No

MongoDB

Yes

No

mongoimport

GridFS

CouchDB

Yes

Yes

Bulk Doc API

Attachments

Neo4j

Yes (via Lucene)

No

No

No

DynamoDB

Yes

Yes

No

Lewak (deprecated)

Redis

No

No

No

No

 

Requires Compaction

 Replication

 Sharding

 Concurrency

PostgreSQL

No

Master-slave

Add-ons (e.g., PL/Proxy)

Table/row writer lock

HBase

No

Master-slave

Yes via HDFS

Consistent per row

MongoDB

No

Master-slave (via replica sets)

Yes

Write lock

CouchDB

File rewrite

Master-master

Yes (with filters in BigCouch)

Lock-free MVCC

Neo4j

No

Master-slave (in Enterprise Edition)

No

Write lock

DynamoDB

No

Peer-based, master-master

Yes

Vector-clocks

Redis

Snapshot

Master-slave

Add-ons (e.g., client)

None

Transactions

Triggers

Security

Multitenancy

PostgreSQL

ACID

Yes

Users/groups

Yes

HBase

Yes (when enabled)

No

Kerberos via Hadoop security

No

MongoDB

No

No

Users

Yes

CouchDB

No

Update validation or Changes API

Users

Yes

Neo4j

ACID

Transaction event handlers

None

No

DynamoDB

No

Pre/postcommits

None

No

Redis

Multi operation queues

No

Passwords

No

 

Main Differentiator

Weaknesses

PostgreSQL

Best of OSS RDBMS model

Distributed availability

HBase

Very large-scale, Hadoop infrastructure

Flexible growth, query-ability

MongoDB

Easily query Big Data

Embed-ability

CouchDB

Durable and embeddable clusters

Query-ability

Neo4j

Flexible graph

BLOBs or terabyte scale

DynamoDB

Highly available

Query-ability

Redis

Very, very fast

Complex data