Skip to content
AyoKoding

Overview

Databases are specialized systems for storing, organizing, and retrieving data efficiently. This section covers relational databases (SQL, PostgreSQL) and immutable databases (Datomic).

What You'll Learn

  • SQL - The standard language for relational database querying and manipulation
  • PostgreSQL - Advanced open-source relational database with powerful features
  • Datomic - Immutable database with time-travel queries and datalog
  • Database Design - Schema design, normalization, and indexing strategies
  • Query Optimization - Performance tuning and query analysis
  • Transactions - ACID properties, isolation levels, and concurrency control

Available Databases

SQL - Universal Database Language

SQL provides the foundation for working with relational databases:

  • Query Fundamentals - SELECT, WHERE, JOIN for data retrieval
  • Data Manipulation - INSERT, UPDATE, DELETE operations
  • Schema Definition - CREATE TABLE, indexes, constraints
  • Aggregation - GROUP BY, HAVING, aggregate functions
  • Advanced Queries - Subqueries, window functions, CTEs
  • Transactions - BEGIN, COMMIT, ROLLBACK

PostgreSQL - Production Database System

PostgreSQL extends SQL with advanced features:

  • Advanced Data Types - JSON, arrays, ranges, custom types
  • Performance Features - Parallel queries, partitioning, materialized views
  • Full-Text Search - Built-in text search capabilities
  • Extensions - PostGIS for geospatial, pg_trgm for fuzzy matching
  • Replication - Streaming replication, logical replication
  • Administration - Backup strategies, performance tuning, monitoring

Datomic - Immutable Database

Datomic provides immutable data storage with powerful temporal features:

  • Immutability - Facts are never deleted, only accumulated over time
  • Time-Travel Queries - Query database at any point in history with as-of, since, history
  • Datalog Query Language - Declarative, composable queries based on logic programming
  • ACID Transactions - Strong consistency with serializable isolation
  • Flexible Schema - Schema evolves incrementally without migrations
  • Audit Trail - Every fact timestamped and preserved forever

Learning Path

For Relational Databases

  1. Start with SQL fundamentals - Learn the universal language of relational databases
  2. Explore PostgreSQL - Apply SQL knowledge to a production database with advanced features

For Immutable Databases

  1. Start with Datomic - Learn immutable data storage, datalog queries, and time-travel

All databases provide By Example tutorials:

  • Beginner - Core concepts and basic operations (0-40% coverage)
  • Intermediate - Production patterns and optimization (40-75% coverage)
  • Advanced - Expert techniques and administration (75-95% coverage)

Database Operations

Relational Databases (SQL, PostgreSQL)

  • Schema Design - Normalization, relationships, constraints
  • Query Optimization - Indexes, EXPLAIN plans, query tuning
  • Transactions - ACID guarantees, isolation levels, deadlocks
  • Backup & Recovery - pg_dump, WAL archiving, point-in-time recovery
  • Security - User management, role-based access, SSL connections
  • Monitoring - pg_stat views, performance metrics, logging

Immutable Databases (Datomic)

  • Schema Evolution - Additive schema changes without migrations
  • Datalog Queries - Pattern matching, joins, rules, aggregates
  • Time Queries - as-of, since, history for temporal navigation
  • Transaction Functions - Database functions executing inside transactions
  • Audit Trails - Transaction metadata and change tracking
  • Performance - Index selection, caching, query optimization

Getting Started

Relational Databases

Begin with SQL to build a strong foundation in relational database concepts. Then explore PostgreSQL to learn production database features and administration.

Immutable Databases

Start with Datomic to learn immutable data storage, datalog queries, and time-travel capabilities.

Choosing Your Database

  • Use SQL/PostgreSQL for traditional CRUD applications, complex queries, mature ecosystem
  • Use Datomic for audit trails, event sourcing, temporal queries, immutable data requirements

All paths include practical, annotated examples you can run immediately.

Last updated December 22, 2025

Command Palette

Search for a command to run...