MTU Library Catalogue

Syndetics cover image
Image from Syndetics

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

By: Sadalage, Pramod J.
Contributor(s): Fowler, Martin, 1963-.
Material type: materialTypeLabelBookPublisher: Upper Saddle River, NJ : Addison-Wesley, c2013Description: xix, 164 p. : ill. ; 24 cm.Content type: text Media type: unmediated Carrier type: volumeISBN: 9780321826626 (pbk. : alk. paper); 0321826620 (pbk. : alk. paper).Subject(s): Databases -- Technological innovations | Non-relational databases | Information storage and retrieval systems | Computing & information technology | Databases | Graphical & digital media applications | Computers and ITDDC classification: 005.74 | 005.74 SAD
Contents:
Why NoSQL? -- Aggregate data models -- More details on data models -- Distribution models -- Consistency -- Version stamps -- Map-reduce -- Key-value databases -- Document databases -- Column-family stores -- Graph databases -- Schema migrations -- Polyglot persistence -- Beyond NoSQL -- Choosing your database.
Summary: 'NoSQL Distilled' is designed to provide you with enough background on how NoSQL databases work, so that you can choose the right data store without having to trawl the whole web to do it. It won't answer your questions definitively, but it should narrow down the range of options you have to consider.
Holdings
Item type Current library Call number Copy number Status Notes Barcode
General lending MTU Bishopstown Library Lending 005.74 (Browse shelf(Opens below)) 1 Available CIT Module DATA 8005 - Core reading. CIT Module DATA 9002 - Core reading. CIT Module DATA 8002 - Core reading. 00163771
General lending MTU Kerry North Campus Library Ground Floor Main 005.74 SAD (Browse shelf(Opens below)) Available 38888000842165
Total holds: 0

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.

Bibliography: (pages 153-155) and index.

Why NoSQL? -- Aggregate data models -- More details on data models -- Distribution models -- Consistency -- Version stamps -- Map-reduce -- Key-value databases -- Document databases -- Column-family stores -- Graph databases -- Schema migrations -- Polyglot persistence -- Beyond NoSQL -- Choosing your database.

'NoSQL Distilled' is designed to provide you with enough background on how NoSQL databases work, so that you can choose the right data store without having to trawl the whole web to do it. It won't answer your questions definitively, but it should narrow down the range of options you have to consider.

CIT Module DATA8002 - Core reading.

ITT Module DBSM71003

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.