Linked e-resources
Details
Table of Contents
Intro
Table of Contents
About the Author
About the Technical Reviewer
Acknowledgments
Introduction
Chapter 1: Getting Started with RavenDB
A Brief History of Databases
Problems with Relational DBMS
Impedance Mismatch
Object-Relational Mappers
Normalization
Modern Web Applications
NoSQL
Origins of "NoSQL" Name
Why NoSQL?
Characteristics
Additional Advantages
Challenges
Outcome
NoSQL Database Types
Key-Value Stores (KVS)
Document Stores (DS)
Graph Databases (GD)
Wide-Column Stores (WCS)
Multi-Model Databases
RavenDB
History
Advantages of RavenDB
Extreme Performance
Fully Transactional
Auto Tuning
Safe by Default
High Availability
Topologies
How to Start?
Creating Your First Database
Seeding Sample Data
Northwind Database
Documents
Summary
Chapter 2: Document Modeling
Abstraction and Generalization
Modeling in Relational Databases
Data Encapsulation Challenge
Modeling in NoSQL Databases
JSON Documents
Properties of Well-Modeled Documents
Aggregates
Unit of Change and Unit of Consistency
Distributed Systems
Aggregates in the Distributed System
Aggregates as Transaction Boundaries
Modeling in RavenDB
Documents
Identifiers
Modeling Document Relationships
One-to-One Relationship
Embedding
Referencing
Referential Integrity in RavenDB
One-to-Many Relationship
Many-to-Many Relationship
Summary
Chapter 3: Querying
Querying in RavenDB Studio
RavenDB Query Language Basics
Filtering
Query by Nonexistent Property
Query by Non-string Properties
Filtering by Complex Properties
Filtering by Id
Cross-Collection Query
Inequality Query
Logical Operators
Range Queries
Casing
Full-Text Searching
Sorting
Paging
Advanced Querying
Projecting Results
Projecting with Object Literals
Declaring Functions in Queries
Aggregation
Handling Relationships
Accessing Related Documents
Include
Summary
Chapter 4: Indexes
Queries from the Perspective of a Database
Unbounded Queries
Paging
Filtering
Indexes
Types of Indexes
Downsides of Indexing
RavenDB's Indexing Philosophy
Summary
Chapter 5: Map Indexes
Static Indexes
Static Map Index
Static Index Analysis
Expanding Map Index
Indexing References
Stored Fields
Computed Fields
Dynamic Fields
Fanout Index
Multi-Map Index
Indexing Hierarchical Data
Summary
Chapter 6: MapReduce Indexes
Grouping
MapReduce
Aggregation
Static MapReduce Indexes
Static Versus Automatic Indexes
Moment of Initial Indexing
Aggregation Complexity
MultiMapReduce Indexes
Artificial Documents
Creating Artificial Documents
Indexing Artificial Documents
Summary
Chapter 7: Full-Text Search
Basics of Full-Text Search
Single Term
Multiple Terms
Table of Contents
About the Author
About the Technical Reviewer
Acknowledgments
Introduction
Chapter 1: Getting Started with RavenDB
A Brief History of Databases
Problems with Relational DBMS
Impedance Mismatch
Object-Relational Mappers
Normalization
Modern Web Applications
NoSQL
Origins of "NoSQL" Name
Why NoSQL?
Characteristics
Additional Advantages
Challenges
Outcome
NoSQL Database Types
Key-Value Stores (KVS)
Document Stores (DS)
Graph Databases (GD)
Wide-Column Stores (WCS)
Multi-Model Databases
RavenDB
History
Advantages of RavenDB
Extreme Performance
Fully Transactional
Auto Tuning
Safe by Default
High Availability
Topologies
How to Start?
Creating Your First Database
Seeding Sample Data
Northwind Database
Documents
Summary
Chapter 2: Document Modeling
Abstraction and Generalization
Modeling in Relational Databases
Data Encapsulation Challenge
Modeling in NoSQL Databases
JSON Documents
Properties of Well-Modeled Documents
Aggregates
Unit of Change and Unit of Consistency
Distributed Systems
Aggregates in the Distributed System
Aggregates as Transaction Boundaries
Modeling in RavenDB
Documents
Identifiers
Modeling Document Relationships
One-to-One Relationship
Embedding
Referencing
Referential Integrity in RavenDB
One-to-Many Relationship
Many-to-Many Relationship
Summary
Chapter 3: Querying
Querying in RavenDB Studio
RavenDB Query Language Basics
Filtering
Query by Nonexistent Property
Query by Non-string Properties
Filtering by Complex Properties
Filtering by Id
Cross-Collection Query
Inequality Query
Logical Operators
Range Queries
Casing
Full-Text Searching
Sorting
Paging
Advanced Querying
Projecting Results
Projecting with Object Literals
Declaring Functions in Queries
Aggregation
Handling Relationships
Accessing Related Documents
Include
Summary
Chapter 4: Indexes
Queries from the Perspective of a Database
Unbounded Queries
Paging
Filtering
Indexes
Types of Indexes
Downsides of Indexing
RavenDB's Indexing Philosophy
Summary
Chapter 5: Map Indexes
Static Indexes
Static Map Index
Static Index Analysis
Expanding Map Index
Indexing References
Stored Fields
Computed Fields
Dynamic Fields
Fanout Index
Multi-Map Index
Indexing Hierarchical Data
Summary
Chapter 6: MapReduce Indexes
Grouping
MapReduce
Aggregation
Static MapReduce Indexes
Static Versus Automatic Indexes
Moment of Initial Indexing
Aggregation Complexity
MultiMapReduce Indexes
Artificial Documents
Creating Artificial Documents
Indexing Artificial Documents
Summary
Chapter 7: Full-Text Search
Basics of Full-Text Search
Single Term
Multiple Terms