Status: Active Development (95% Complete) Last Updated: November 2025 Version: 2.1
This Oracle LiveLabs workshop teaches document data modeling for Oracle JSON Collections using proven NoSQL design patterns. Learn how to design high-performance document models that maximize query efficiency and leverage Oracle AI Database 26ai features.
- Duration: 6.5 hours total (Foundation series: 3.5 hours)
- Labs: 11 labs (Lab 0-10)
- Target Audience: Database developers new to NoSQL/document modeling
- Deployment: Oracle Autonomous AI JSON Database or Oracle AI Database 26ai Free (Docker)
- Part of: Three-part workshop series on JSON document modeling
json-document-modeling-livelab/
βββ README.md # This file - Workshop overview
βββ introduction/ # Workshop introduction
β βββ introduction.md
βββ labs/ # Lab content (Labs 0-10)
β βββ 00-setup/
β βββ 01-json-collections-fundamentals/
β βββ 02-embedded-referenced/
β βββ 03-single-collection/ # Single Collection/Table Design pattern
β βββ 04-computed-pattern/
β βββ 05-bucketing-pattern/
β βββ 06-polymorphic-pattern/
β βββ 07-lob-performance/
β βββ 08-indexing-strategies/
β βββ 09-performance-testing/
β βββ 10-advanced-patterns/
βββ workshops/ # Workshop manifests
β βββ tenancy/ # For Oracle Cloud tenancies
β βββ desktop/ # For noVNC environments
βββ docs/ # π Documentation and reference materials
β βββ README.md # β START HERE - Documentation guide
β βββ WORKSHOP_PLAN.md # Complete workshop plan
β βββ SINGLE_COLLECTION_PATTERN.md # Deep-dive pattern guide
β βββ PATTERN_REFERENCE.md # Quick pattern reference
β βββ IMPLEMENTATION_CHECKLIST.md # Development progress tracking
β βββ CLAUDE.md # Development guide
β βββ CONTRIBUTING.md # Contribution guidelines
β βββ SECURITY.md # Security policy
β βββ archive/ # Historical documents
β βββ WORKSHOP_PLAN.md (original)
β βββ DELIVERY_SUMMARY.md
β βββ README_ORIGINAL.md
β βββ SETUP_GITHUB.md
βββ data/ # Sample datasets (TBD)
βββ scripts/ # Performance scripts (TBD)
βββ images/ # Screenshots and diagrams
π For complete documentation guide: See docs/README.md
This repository contains Part 1: JSON Collections Fundamentals (Labs 0-3, 3.5 hours):
Part 1: JSON Collections Fundamentals (This workshop)
- Lab 0: Setup and environment configuration
- Lab 1: JSON Collections basics and OSON format
- Lab 2: Embedded vs Referenced patterns
- Lab 3: Introduction to Single Collection design
Part 2: Single Collection Deep-Dive (Separate workshop, 1.5 hours)
- Comprehensive coverage of Single Collection/Table pattern
- Access pattern-first methodology
- Real-world implementation and performance testing
Part 3: Advanced Document Modeling (Separate workshop, 4-4.5 hours)
- Lab 4: Computed Pattern & Pre-Aggregations
- Lab 5: Bucketing Pattern for Time-Series
- Lab 6: Polymorphic Pattern
- Lab 7: LOB Performance Optimization
- Lab 8: Indexing Strategies
- Lab 9: Performance Testing
- Lab 10: Advanced Patterns & Best Practices
| Lab | Title | Duration | Status |
|---|---|---|---|
| 0 | Setup & Configuration | 30 min | β Complete |
| 1 | JSON Collections Fundamentals | 30 min | β Complete |
| 2 | Embedded vs Referenced Patterns | 45 min | β Complete |
| 3 | Single Collection/Table Design | 60 min | β Complete |
| 4 | Computed Pattern & Aggregations | 45 min | β Complete |
| 5 | Bucketing Pattern for Time-Series | 45 min | π§ In Development |
| 6 | Polymorphic Pattern | 30 min | β Complete |
| 7 | Avoiding LOB Performance Cliffs | 45 min | β Complete |
| 8 | Indexing Strategies | 45 min | π§ In Development |
| 9 | Performance Testing & Comparison | 45 min | π§ In Development |
| 10 | Advanced Patterns & Best Practices | 30 min | β Complete |
Total: 6.5 hours across all labs
For comprehensive documentation, pattern guides, and development resources:
π See docs/README.md for complete documentation guide
Key resources:
- docs/WORKSHOP_PLAN.md - Complete workshop design
- docs/SINGLE_COLLECTION_PATTERN.md - 25-page pattern deep-dive
- docs/PATTERN_REFERENCE.md - Quick pattern lookup
- docs/IMPLEMENTATION_CHECKLIST.md - Development progress
By completing this workshop series, you will be able to:
-
Understand document modeling fundamentals
- Paradigm shift from relational to document modeling
- When to use embedded vs referenced patterns
- Access pattern-first design principles
-
Apply core modeling patterns
- Single Collection/Table Design pattern
- Embedded and Referenced patterns
- Computed, Bucketing, and Polymorphic patterns
- Subset and Extended Reference patterns
-
Optimize for performance
- Avoid LOB performance cliffs (32MB OSON limit)
- Strategic denormalization to eliminate joins
- Composite key strategies for hierarchical data
- Multivalue indexes for array queries
-
Leverage Oracle-specific features
- OSON binary format and performance tiers
- JSON Collections with SQL/JSON queries
- Multivalue and search indexes
- JSON Duality Views (Lab 10)
-
Measure and compare performance
- Benchmark different modeling approaches
- Identify performance bottlenecks
- Optimize query patterns
This workshop covers essential patterns for document design:
- Embedded Pattern - Store related data together in a single document
- Referenced Pattern - Link documents using IDs (like foreign keys)
- Single Collection Pattern - Store multiple entity types in one collection using composite keys
- Computed Pattern - Pre-calculate aggregations for faster queries
- Bucketing Pattern - Group time-series data into manageable chunks
- Polymorphic Pattern - Multiple entity types with type discriminator
- Subset Pattern - Separate frequently vs rarely accessed data
Access Pattern-First Design:
"What is accessed together should be stored together"
This approach, developed for DynamoDB and adopted across the NoSQL industry, starts with analyzing how your application queries data before designing the data model.
Strategic Denormalization:
- Duplicate data when it's accessed together
- Keep documents under 8KB for optimal OSON performance
- Avoid unbounded arrays that could cause documents to exceed 32MB
Composite Keys:
- Use hierarchical keys like
CUSTOMER#456#ORDER#001 - Enable efficient prefix queries (
WHERE _id LIKE 'CUSTOMER#456#%') - Support multiple entity types in one collection
This workshop leverages Oracle AI Database 26ai JSON capabilities:
- JSON Collection Tables - Native single-column tables for JSON documents (
CREATE JSON COLLECTION TABLE) - OSON Binary Format - Optimized storage with 32MB limit and performance tiers
- SQL/JSON Functions - Query JSON using standard SQL
- Multivalue Indexes - Index array elements for efficient queries
- Search Indexes - Full-text search across JSON documents
- Partial Indexes - Index specific document types
- JSON Duality Views - Bridge relational and document models
- MongoDB API Compatibility - Use MongoDB drivers with Oracle (requires ACL configuration)
- Basic database knowledge (tables, queries, indexes)
- Familiarity with JSON format
- Oracle Cloud account (Free Tier available)
- Basic SQL knowledge
- Access the workshop - Available on Oracle LiveLabs (link TBD)
- Provision database - Follow Lab 0 to set up Oracle AI Database 26ai Free (Docker) or Autonomous AI JSON Database
- Complete labs in sequence - Start with Lab 0 and progress through Lab 3 (Foundation series)
- Refer to pattern guides - Use docs/ for deep-dives and references
# Pull the Oracle AI Database 26ai Free image
docker pull ghcr.io/oracle/adb-free:latest-26ai
# Run the container
docker run -d \
--name oracle26ai \
-p 1521:1521 -p 1522:1522 -p 8443:8443 -p 27017:27017 \
-e WORKLOAD_TYPE=ATP \
-e WALLET_PASSWORD=WalletPass1234 \
-e ADMIN_PASSWORD=WelcomeOracle1 \
--cap-add SYS_ADMIN \
--device /dev/fuse \
ghcr.io/oracle/adb-free:latest-26ai
# Access Database Actions at https://localhost:8443/ords/sql-developer- Workshop Introduction: introduction/introduction.md
- Pattern Deep-Dive: docs/SINGLE_COLLECTION_PATTERN.md
- Complete Documentation: docs/README.md
- Development Status: docs/IMPLEMENTATION_CHECKLIST.md
We welcome contributions! Please see docs/CONTRIBUTING.md for guidelines.
For security vulnerabilities, see docs/SECURITY.md.
- Oracle AI Database 26ai
- Oracle JSON Developer's Guide
- JSON Collection Tables
- Oracle Database API for MongoDB
Copyright (c) 2025 Oracle and/or its affiliates. Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/
Author: Rick Houlihan Contributors: Oracle JSON Development Team, Oracle LiveLabs Team Last Updated: November 2025
Questions or feedback? Please open an issue in this repository or contact the workshop team through Oracle LiveLabs support channels.