gogogo
Syndetics cover image
Image from Syndetics

NoSQL distilled : a brief guide to the emerging world of polyglot persistence / Pramod J. Sadalage, Martin Fowler.

Contributor(s): Material type: TextTextPublication details: Upper Saddle River, N.J. : Addison-Wesley, 2013.Description: xix, 164 s. ; 24 cmISBN:
  • 9780321826626 (paperback)
Subject(s):
Holdings
Item type Current library Call number Status Date due Barcode
Standard Loan Thurles Library Main Collection 005.785 SAD (Browse shelf(Opens below)) Available 30026000067172

Enhanced descriptions from Syndetics:

The need to handle increasingly larger data volumes is one factor driving the adoption of a new class of nonrelational "NoSQL" databases. Advocates of NoSQL databases claim they can be used to build systems that are more performant, scale better, and are easier to program.

NoSQL Distilled is a concise but thorough introduction to this rapidly emerging technology. Pramod J. Sadalage and Martin Fowler explain how NoSQL databases work and the ways that they may be a superior alternative to a traditional RDBMS. The authors provide a fast-paced guide to the concepts you need to know in order to evaluate whether NoSQL databases are right for your needs and, if so, which technologies you should explore further.

The first part of the book concentrates on core concepts, including schemaless data models, aggregates, new distribution models, the CAP theorem, and map-reduce. In the second part, the authors explore architectural and design issues associated with implementing NoSQL. They also present realistic use cases that demonstrate NoSQL databases at work and feature representative examples using Riak, MongoDB, Cassandra, and Neo4j.

In addition, by drawing on Pramod Sadalage's pioneering work, NoSQL Distilled shows how to implement evolutionary design with schema migration: an essential technique for applying NoSQL databases. The book concludes by describing how NoSQL is ushering in a new age of Polyglot Persistence, where multiple data-storage worlds coexist, and architects can choose the technology best optimized for each type of data access.

Includes bibliographical references (p. 153-155) and index.

Table of contents provided by Syndetics

  • Preface (p. xiii)
  • Part I Understand (p. 1)
  • Chapter 1 Why NoSQL? (p. 3)
  • 1.1 The Value of Relational Databases (p. 3)
  • 1.1.1 Getting at Persistent Data (p. 3)
  • 1.1.2 Concurrency (p. 4)
  • 1.1.3 Integration (p. 4)
  • 1.1.4 A (Mostly) Standard Model (p. 4)
  • 1.2 Impedance Mismatch (p. 5)
  • 1.3 Application and Integration Databases (p. 6)
  • 1.4 Attack of the Clusters (p. 8)
  • 1.5 The Emergence of NoSQL (p. 9)
  • 1.6 Key Points (p. 12)
  • Chapter 2 Aggregate Data Models (p. 13)
  • 2.1 Aggregates (p. 14)
  • 2.1.1 Example of Relations and Aggregates (p. 14)
  • 2.1.2 Consequences of Aggregate Orientation (p. 19)
  • 2.2 Key-Value and Document Data Models (p. 20)
  • 2.3 Column-Family Stores (p. 21)
  • 2.4 Summarizing Aggregate-Oriented Databases (p. 23)
  • 2.5 Further Reading (p. 24)
  • 2.6 Key Points (p. 24)
  • Chapter 3 More Details on Data Models (p. 25)
  • 3.1 Relationships (p. 25)
  • 3.2 Graph Databases (p. 26)
  • 3.3 Schemaless Databases (p. 28)
  • 3.4 Materialized Views (p. 30)
  • 3.5 Modeling for Data Access (p. 31)
  • 3.6 Key Points (p. 36)
  • Chapter 4 Distribution Models (p. 37)
  • 4.1 Single Server (p. 37)
  • 4.2 Sharding (p. 38)
  • 4.3 Master-Slave Replication (p. 40)
  • 4.4 Peer-to-Peer Replication (p. 42)
  • 4.5 Combining Sharding and Replication (p. 43)
  • 4.6 Key Points (p. 44)
  • Chapter 5 Consistency (p. 47)
  • 5.1 Update Consistency (p. 47)
  • 5.2 Read Consistency (p. 49)
  • 5.3 Relaxing Consistency (p. 52)
  • 5.3.1 The CAP Theorem (p. 53)
  • 5.4 Relaxing Durability (p. 56)
  • 5.5 Quorums (p. 57)
  • 5.6 Further Reading (p. 59)
  • 5.7 Key Points (p. 59)
  • Chapter 6 Version Stamps (p. 61)
  • 6.1 Business and System Transactions (p. 61)
  • 6.2 Version Stamps on Multiple Nodes (p. 63)
  • 6.3 Key Points (p. 65)
  • Chapter 7 Map-Reduce (p. 67)
  • 7.1 Basic Map-Reduce (p. 68)
  • 7.2 Partitioning and Combining (p. 69)
  • 7.3 Composing Map-Reduce Calculations (p. 72)
  • 7.3.1 A Two Stage Map-Reduce Example (p. 73)
  • 7.3.2 Incremental Map-Reduce (p. 76)
  • 7.4 Further Reading (p. 77)
  • 7.5 Key Points (p. 77)
  • Part II Implement (p. 79)
  • Chapter 8 Key-Value Databases (p. 81)
  • 8.1 What Is a Key-Value Store (p. 81)
  • 8.2 Key-Value Store Features (p. 83)
  • 8.2.1 Consistency (p. 83)
  • 8.2.2 Transactions (p. 84)
  • 8.2.3 Query Features (p. 84)
  • 8.2.4 Structure of Data (p. 86)
  • 8.2.5 Scaling (p. 86)
  • 8.3 Suitable Use Cases (p. 87)
  • 8.3.1 Storing Session Information (p. 87)
  • 8.3.2 User Profiles, Preferences (p. 87)
  • 8.3.3 Shopping Cart Data (p. 87)
  • 8.4 When Not to Use (p. 87)
  • 8.4.1 Relationships among Data (p. 87)
  • 8.4.2 Multioperation Transactions (p. 88)
  • 8.4.3 Query by Data (p. 88)
  • 8.4.4 Operations by Sets (p. 88)
  • Chapter 9 Document Databases (p. 89)
  • 9.1 What Is a Document Database? (p. 90)
  • 9.2 Features (p. 91)
  • 9.2.2 Consistency (p. 91)
  • 9.2.2 Transactions (p. 92)
  • 9.2.3 Availability (p. 93)
  • 9.2.4 Query Features (p. 94)
  • 9.2.5 Scaling (p. 95)
  • 9.3 Suitable Use Cases (p. 97)
  • 9.3.1 Event Logging (p. 97)
  • 9.3.2 Content Management Systems, Blogging Platforms (p. 98)
  • 9.3.3 Web Analytics or Real-Time Analytics (p. 98)
  • 9.3.4 E-Commerce Applications (p. 98)
  • 9.4 When Not to Use (p. 98)
  • 9.4.2 Complex Transactions Spanning Different Operations (p. 98)
  • 9.4.2 Queries against Varying Aggregate Structure (p. 98)
  • Chapter 10 Column-Family Stores (p. 99)
  • 10.1 What Is a Column-Family Data Store? (p. 99)
  • 10.2 Features (p. 100)
  • 10.2.1 Consistency (p. 103)
  • 10.2.2 Transactions (p. 104)
  • 10.2.3 Availability (p. 104)
  • 10.2.4 Query Features (p. 105)
  • 10.2.5 Scaling (p. 107)
  • 10.3 Suitable Use Cases (p. 107)
  • 10.3.1 Event Logging (p. 107)
  • 10.3.2 Content Management Systems, Blogging Platforms (p. 108)
  • 10.3.3 Counters (p. 108)
  • 10.3.4 Expiring Usage (p. 108)
  • 10.4 When Not to Use (p. 109)
  • Chapter 11 Graph Databases (p. 111)
  • 11.1 What Is a Graph Database? (p. 111)
  • 11.2 Features (p. 113)
  • 11.2.1 Consistency (p. 114)
  • 11.2.2 Transactions (p. 114)
  • 11.2.3 Availability (p. 115)
  • 11.2.4 Query Features (p. 115)
  • 11.2.5 Scaling (p. 119)
  • 11.3 Suitable Use Cases (p. 120)
  • 11.3.1 Connected Data (p. 120)
  • 11.3.2 Routing, Dispatch, and Location-Based Services (p. 120)
  • 11.3.2 Recommendation Engines (p. 121)
  • 11.4 When Not to Use (p. 121)
  • Chapter 12 Schema Migrations (p. 123)
  • 12.1 Schema Changes (p. 123)
  • 12.2 Schema Changes in RDBMS (p. 123)
  • 12.2.1 Migrations for Green Field Projects (p. 124)
  • 12.2.1 Migrations in Legacy Projects (p. 126)
  • 12.3 Schema Changes in a NoSQL Data Store (p. 128)
  • 12.3.1 Incremental Migration (p. 130)
  • 12.3.2 Migrations in Graph Databases (p. 131)
  • 12.3.3 Changing Aggregate Structure (p. 132)
  • 12.4 Further Reading (p. 132)
  • 12.5 Key Points (p. 132)
  • Chapter 13 Polyglot Persistence (p. 133)
  • 13.1 Disparate Data Storage Needs (p. 133)
  • 13.2 Polyglot Data Store Usage (p. 134)
  • 13.3 Service Usage over Direct Data Store Usage (p. 136)
  • 13.4 Expanding for Better Functionality (p. 136)
  • 13.5 Choosing the Right Technology (p. 138)
  • 13.6 Enterprise Concerns with Polyglot Persistence (p. 138)
  • 13.7 Deployment Complexity (p. 139)
  • 13.8 Key Points (p. 140)
  • Chapter 14 Beyond NoSQL (p. 141)
  • 14.1 File Systems (p. 141)
  • 14.2 Event Sourcing (p. 142)
  • 14.3 Memory Image (p. 144)
  • 14.4 Version Control (p. 145)
  • 14.5 XML Databases (p. 145)
  • 14.6 Object Databases (p. 146)
  • 14.7 Key Points (p. 146)
  • Chapter 15 Choosing Your Database (p. 147)
  • 15.1 Programmer Productivity (p. 147)
  • 15.2 Data-Access Performance (p. 149)
  • 15.3 Sticking with the Default (p. 150)
  • 15.4 Hedging Your Bets (p. 150)
  • 15.5 Key Points (p. 151)
  • 15.6 Final Thoughts (p. 152)
  • Bibliography (p. 153)
  • Index (p. 157)

Author notes provided by Syndetics

Pramod J. Sadalage, Principal Consultant at Thought Works, enjoys the rare role of bridging the divide between database professionals and application developers. He regularly consults with clients who have particularly challenging data needs requiring new technologies and techniques. He developed pioneering techniques that allowed relational databases to be designed in an evolutionary manner based on version-controlled schema migrations. With Scott Ambler, he coauthored Refactoring Databases (Addison-Wesley, 2006). Martin Fowler, Chief Scientist at Thought Works, focuses on better ways to design software systems and improve developer productivity. His books include Patterns of Enterprise Application Architecture; UML Distilled, Third Edition; Domain-Specific Languages (with Rebecca Parsons); and Refactoring: Improving the Design of Existing Code (with Kent Beck, John Brant, and William Opdyke). All are published by Addison-Wesley.

Powered by Koha