NoSQL distilled : a brief guide to the emerging world of polyglot persistence / Pramod J. Sadalage, Martin Fowler.
Material type: TextPublication details: Upper Saddle River, N.J. : Addison-Wesley, 2013.Description: xix, 164 s. ; 24 cmISBN:- 9780321826626 (paperback)
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)