Section 1: NoSQL and Document Databases
- Modern application challenges and the limits of tabular databases
- The CAP theorem and the types of NoSQL database
- How document databases differ from relational ones
- What Couchbase is good for and where it fits in a system
- Lab: compare multi-table order data with a JSON document
Section 2: Lab: Installing Couchbase Server 8
- Couchbase services: Data, Query, Index, Search and Eventing
- Multi-dimensional scaling and placing services on different nodes
- Buckets, scopes and collections
- Installing with Docker and getting to know the Web Console
- Lab: install a test cluster, create a bucket and load sample data
Section 3: Lab: Data Modelling for JSON Documents
- Designing document keys that are readable and fast to access
- Choosing between nesting data and referencing other documents
- Using scopes and collections to separate data types and tenants
- Designing documents with search in mind from the start
- Lab: design product, review and category documents for a search system
Section 4: Lab: SQL++ Essentials
- Query Workbench and the cbq shell
- SELECT, WHERE, ORDER BY, LIMIT and aliases
- USE KEYS and fetching documents by key
- MISSING versus NULL, and commonly used functions
- Lab: find products by category, price and status with SQL++
Section 5: Lab: SQL++ with Arrays, Joins and Data Changes
- ANY, EVERY and ARRAY for data inside arrays
- UNNEST and NEST for flattening and grouping nested data
- Joins across collections, and GROUP BY with aggregate functions
- INSERT, UPSERT, UPDATE and DELETE
- Lab: a report of average review scores for each category