Easily digestible, practical advice for technical managers, architects, and developers.
Making Sense of NoSQL clearly and concisely explains the concepts, features, benefits, potential, and limitations of NoSQL technologies. Using examples and use cases, illustrations, and plain, jargon-free writing, this guide shows how you can effectively assemble a NoSQL solution to replace or augment the traditional RDBMS you have now.
about this book
Part 1 Introduction
1. NoSQL: It’s about making intelligent choices
1.1. What is NoSQL?
1.2. NoSQL business drivers
1.3. NoSQL case studies
2. NoSQL concepts
2.1. Keeping components simple to promote reuse
2.2. Using application tiers to simplify design
2.3. Speeding performance by strategic use of RAM, SSD, and disk
2.4. Using consistent hashing to keep your cache current
2.5. Comparing ACID and BASE — two methods of reliable database transactions
2.6. Achieving horizontal scalability with database sharding
2.7. Understanding trade-offs with Brewer’s CAP theorem
2.8. Apply your knowledge
2.10. Further reading
Part 2 Database patterns
3. Foundational data architecture patterns
3.1. What is a data architecture pattern?
3.2. Understanding the row-store design pattern used in RDBMSs
3.3. Example: Using joins in a sales order
3.4. Reviewing RDBMS implementation features
3.5. Analyzing historical data with OLAP, data warehouse, and business intelligence systems
3.6. Incorporating high availability and read-mostly systems
3.7. Using hash trees in revision control systems and database synchronization
3.8. Apply your knowledge
3.10. Further reading
4. NoSQL data architecture patterns
4.1. Key-value stores
4.2. Graph stores
4.3. Column family (Bigtable) stores
4.4. Document stores
4.5. Variations of NoSQL architectural patterns
4.7. Further reading
5. Native XML databases
5.1. What is a native XML database?
5.2. Building applications with a native XML database
5.3. Using XML standards within native XML databases
5.4. Designing and validating your data with XML Schema and Schematron
5.5. Extending XQuery with custom modules
5.6. Case study: using NoSQL at the Office of the Historian at the Department of State
5.7. Case study: managing financial derivatives with MarkLogic
5.9. Further reading
Part 3 NoSQL solutions
6. Using NoSQL to manage big data
6.1. What is a big data NoSQL solution?
6.2. Getting linear scaling in your data center
6.3. Understanding linear scalability and expressivity
6.4. Understanding the types of big data problems
6.5. Analyzing big data with a shared-nothing architecture
6.6. Choosing distribution models: master-slave versus peer-to-peer
6.7. Using MapReduce to transform your data over distributed systems
6.8. Four ways that NoSQL systems handle big data problems
6.9. Case study: event log processing with Apache Flume
6.10. Case study: computer-aided discovery of health care fraud
6.12. Further reading
7. Finding information with NoSQL search
7.1. What is NoSQL search?
7.2. Types of search
7.3. Strategies and methods that make NoSQL search effective
7.4. Using document structure to improve search quality
7.5. Measuring search quality
7.6. In-node indexes versus remote search services
7.7. Case study: using MapReduce to create reverse indexes
7.8. Case study: searching technical documentation
7.9. Case study: searching domain-specific languages — findability and reuse
7.10. Apply your knowledge
7.12. Further reading
8. Building high-availability solutions with NoSQL
8.1. What is a high-availability NoSQL database?
8.2. Measuring availability of NoSQL databases
8.3. NoSQL strategies for high availability
8.4. Case study: using Apache Cassandra as a high-availability column family store
8.5. Case study: using Couchbase as a high-availability document store
8.7. Further reading
9. Increasing agility with NoSQL
9.1. What is software agility?
9.2. Measuring agility
9.3. Using document stores to avoid object-relational mapping
9.4. Case study: using XRX to manage complex forms
9.6. Further reading
Part 4 Advanced topics
10. NoSQL and functional programming
10.1. What is functional programming?
10.2. Case study: using NetKernel to optimize web page content assembly
10.3. Examples of functional programming languages
10.4. Making the transition from imperative to functional programming
10.5. Case study: building NoSQL systems with Erlang
10.6. Apply your knowledge
10.8. Further reading
11. Security: protecting data in your NoSQL systems
11.1. A security model for NoSQL databases
11.2. Gathering your security requirements
11.3. Case Study: access controls on key-value store — Amazon S3
11.4. Case study: using key visibility with Apache Accumulo
11.5. Case study: using MarkLogic’s RBAC model in secure publishing
11.7. Further reading
12. Selecting the right NoSQL solution
12.1. What is architecture trade-off analysis?
12.2. Team dynamics of database architecture selection
12.3. Steps in architectural trade-off analysis
12.4. Analysis through decomposition: quality trees
12.5. Communicating the results to stakeholders
12.6. Finding the right proof-of-architecture pilot project
12.8. Further reading
About the book
If you want to understand and perhaps start using the new data storage and analysis technologies that go beyond the SQL database model, this book is for you. Written in plain language suitable for technical managers and developers, and using many examples, use cases, and illustrations, this book explains the concepts, features, benefits, potential, and limitations of NoSQL.
Making Sense of NoSQL starts by comparing familiar database concepts to the new NoSQL patterns that augment or replace them. Then, you'll explore case studies on big data, search, reliability, and business agility that apply these new patterns to today's business problems. You'll see how NoSQL systems can leverage the resources of modern cloud computing and multiple-CPU data centers. The final chapters show you how to choose the right NoSQL technologies for your own needs.
- NoSQL data architecture patterns
- NoSQL for big data
- Search, high availability, and security
- Choosing an architecture
About the reader
Managers and developers will welcome this lucid overview of the potential and capabilities of NoSQL technologies.
Cuts through the jargon and gives you the information you need to know.
A concise yet thorough description of the many facets of NoSQL, from big data to search.
Brings common sense to the world of NoSQL.
Get ahead of your peers ... fast-track to NoSQL now!