Get the FREE Ultimate OpenClaw Setup Guide →

database

Scanned
npx machina-cli add skill Fujigo-Software/f5-framework-claude/database --openclaw
Files (1)
SKILL.md
10.4 KB

Database Skills

Overview

Comprehensive database knowledge for designing, querying, optimizing, and managing data storage systems effectively across relational and non-relational paradigms.

Database Landscape

┌─────────────────────────────────────────────────────────┐
│                    Relational (SQL)                      │
│  PostgreSQL │ MySQL │ SQL Server │ Oracle │ SQLite      │
├─────────────────────────────────────────────────────────┤
│                    Document (NoSQL)                      │
│  MongoDB │ CouchDB │ Firestore │ RethinkDB              │
├─────────────────────────────────────────────────────────┤
│                    Key-Value                             │
│  Redis │ DynamoDB │ Memcached │ etcd │ Riak            │
├─────────────────────────────────────────────────────────┤
│                    Wide-Column                           │
│  Cassandra │ HBase │ ScyllaDB │ BigTable               │
├─────────────────────────────────────────────────────────┤
│                    Graph                                 │
│  Neo4j │ Amazon Neptune │ ArangoDB │ JanusGraph        │
├─────────────────────────────────────────────────────────┤
│                    Time-Series                           │
│  InfluxDB │ TimescaleDB │ Prometheus │ QuestDB         │
├─────────────────────────────────────────────────────────┤
│                    Search                                │
│  Elasticsearch │ OpenSearch │ Meilisearch │ Typesense  │
└─────────────────────────────────────────────────────────┘

Skill Categories

Fundamentals

Core database concepts every developer should know:

  • Database types and their trade-offs
  • ACID properties and transactions
  • CAP theorem implications
  • Normalization forms (1NF through BCNF)

SQL

Structured Query Language mastery:

  • SQL fundamentals (CRUD operations)
  • Advanced query techniques
  • Joins explained with diagrams
  • Window functions for analytics
  • CTEs and subqueries

PostgreSQL

Deep dive into the world's most advanced open-source database:

  • PostgreSQL-specific features
  • Index types (B-tree, GIN, GiST, BRIN)
  • JSON/JSONB operations
  • Full-text search capabilities

NoSQL

Non-relational database patterns:

  • MongoDB document modeling
  • Redis data structures and patterns
  • DynamoDB single-table design
  • When to use NoSQL vs SQL

Design

Data modeling and schema design:

  • Schema design principles
  • Entity-relationship modeling
  • Relationship types and implementation
  • Strategic denormalization

Migrations

Safe database evolution:

  • Migration strategies
  • Zero-downtime migrations
  • Data migration patterns

Optimization

Performance tuning techniques:

  • Query optimization
  • Indexing strategies
  • EXPLAIN ANALYZE interpretation
  • Connection pooling

Operations

Database administration:

  • Backup and recovery
  • Replication strategies
  • Sharding patterns
  • Monitoring and alerting

Decision Matrix: Choosing the Right Database

Use CaseRecommendedAlternativeRationale
General purposePostgreSQLMySQLVersatile, ACID, JSON support
Simple web appMySQLSQLiteWide hosting support
High-speed cachingRedisMemcachedData structures, persistence
Flexible documentsMongoDBCouchDBSchema-less, horizontal scale
Analytics/OLAPClickHouseBigQueryColumn-oriented, fast aggregations
Complex relationshipsNeo4jArangoDBNative graph queries
Time-series dataTimescaleDBInfluxDBTime-based partitioning
Full-text searchElasticsearchMeilisearchInverted index, relevance
Global distributionCockroachDBSpannerGeo-partitioning
Embedded/EdgeSQLiteDuckDBZero configuration

Database Selection Flowchart

Start: What's your primary need?
│
├─> Structured data with relationships?
│   ├─> Complex queries needed? → PostgreSQL
│   ├─> Simple CRUD, wide hosting? → MySQL
│   └─> Embedded/serverless? → SQLite
│
├─> Flexible schema/documents?
│   ├─> Horizontal scaling? → MongoDB
│   └─> Real-time sync? → Firestore
│
├─> High-speed caching?
│   ├─> Data structures needed? → Redis
│   └─> Simple key-value? → Memcached
│
├─> Analytics/reporting?
│   ├─> Real-time analytics? → ClickHouse
│   └─> Time-series data? → TimescaleDB
│
├─> Graph relationships?
│   └─> → Neo4j or Amazon Neptune
│
└─> Full-text search?
    └─> → Elasticsearch or Meilisearch

Quick Reference

ACID Properties

  • Atomicity: All or nothing transactions
  • Consistency: Valid state transitions only
  • Isolation: Concurrent transaction separation
  • Durability: Committed data persists

CAP Theorem

Pick two of three (in partition scenario):

  • Consistency: Every read gets latest write
  • Availability: Every request gets response
  • Partition tolerance: System works despite network splits

Normal Forms Quick Guide

  • 1NF: Atomic values, no repeating groups
  • 2NF: 1NF + no partial dependencies
  • 3NF: 2NF + no transitive dependencies
  • BCNF: 3NF + every determinant is a candidate key

Common Patterns

Read-Heavy Workloads

┌─────────────┐     ┌─────────────┐
│   Primary   │────▶│   Replica   │◀── Reads
│  (Writes)   │     │   (Reads)   │
└─────────────┘     └─────────────┘
                    ┌─────────────┐
               ────▶│   Replica   │◀── Reads
                    │   (Reads)   │
                    └─────────────┘

Caching Strategy

┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│    App      │────▶│   Cache     │────▶│  Database   │
│             │     │   (Redis)   │     │   (PGSQL)   │
└─────────────┘     └─────────────┘     └─────────────┘
       │                   │
       └───────────────────┘
         Cache miss: query DB, populate cache

Event Sourcing

┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│   Events    │────▶│   Event     │────▶│  Projected  │
│   (append)  │     │   Store     │     │   Views     │
└─────────────┘     └─────────────┘     └─────────────┘

Files in This Skill

database/
├── _index.md                    # This file
├── fundamentals/
│   ├── database-types.md        # Database paradigms comparison
│   ├── acid-properties.md       # Transaction guarantees
│   ├── cap-theorem.md           # Distributed system trade-offs
│   └── normalization.md         # Data normalization forms
├── sql/
│   ├── sql-fundamentals.md      # Basic SQL operations
│   ├── advanced-queries.md      # Complex query patterns
│   ├── joins-explained.md       # Join types with diagrams
│   ├── window-functions.md      # Analytics functions
│   └── cte-subqueries.md        # CTEs and subqueries
├── postgresql/
│   ├── postgres-features.md     # PostgreSQL capabilities
│   ├── indexes.md               # Index types and usage
│   ├── json-operations.md       # JSON/JSONB handling
│   └── full-text-search.md      # FTS configuration
├── nosql/
│   ├── mongodb-basics.md        # MongoDB fundamentals
│   ├── redis-patterns.md        # Redis data patterns
│   ├── dynamodb-modeling.md     # DynamoDB design
│   └── when-to-use.md           # NoSQL vs SQL decision
├── design/
│   ├── schema-design.md         # Schema principles
│   ├── data-modeling.md         # ER modeling
│   ├── relationships.md         # Relationship types
│   └── denormalization.md       # Strategic denorm
├── migrations/
│   ├── migration-strategies.md  # Migration approaches
│   ├── zero-downtime.md         # Online migrations
│   └── data-migration.md        # Data movement
├── optimization/
│   ├── query-optimization.md    # Query tuning
│   ├── indexing-strategies.md   # Index design
│   ├── explain-analyze.md       # Query plans
│   └── connection-pooling.md    # Pool management
└── operations/
    ├── backup-recovery.md       # Backup strategies
    ├── replication.md           # Replication setup
    ├── sharding.md              # Horizontal scaling
    └── monitoring.md            # DB observability

Related Skills

  • Backend Development: Database integration patterns
  • API Design: Data access layer design
  • Security: Database security, encryption
  • DevOps: Database deployment, automation

Source

git clone https://github.com/Fujigo-Software/f5-framework-claude/blob/main/plugins/f5-core/skills/database/SKILL.mdView on GitHub

Overview

Provides comprehensive knowledge across relational and non-relational databases, enabling effective design, querying, optimization, and data management. It covers fundamentals, SQL, NoSQL, design principles, migrations, and operations to help build scalable, reliable data stores.

How This Skill Works

The skill is organized into core categories (Fundamentals, SQL, PostgreSQL, NoSQL, Design, Migrations, Optimization, Operations) and reinforced with a decision matrix to guide technology choices. It blends conceptual guidance with practical techniques such as indexing, normalization, query planning, and zero-downtime migration patterns to ensure robust data platforms.

When to Use It

  • Designing a new application's data model and choosing the right database type
  • Selecting between SQL and NoSQL based on data shape, consistency needs, and scale
  • Optimizing slow queries, tuning indexes, and interpreting execution plans
  • Planning safe migrations and zero-downtime database upgrades
  • Building analytical or time-series workloads (OLAP, time-series data)

Quick Start

  1. Step 1: Assess data requirements and choose a DB type (SQL vs NoSQL) based on structure and scale
  2. Step 2: Model the data, select indexing strategies, and set up a sample schema or collections
  3. Step 3: Write representative queries, run EXPLAIN ANALYZE, and establish backups and monitoring

Best Practices

  • Define clear data models with appropriate normalization or denormalization based on the DB type
  • Choose the database type considering ACID/BASE, consistency, and scaling requirements
  • Invest in indexing strategies and use EXPLAIN ANALYZE to guide optimization
  • Plan migrations with backward-compatible changes and zero-downtime techniques
  • Establish backup, replication, and monitoring to ensure reliability and observability

Example Use Cases

  • Designing a PostgreSQL schema for an e-commerce catalog with normalized tables and JSONB for flexible attributes
  • Using Redis for caching and session storage to improve web app responsiveness
  • Modeling documents in MongoDB for a flexible product catalog with evolving attributes
  • Implementing time-series analytics with TimescaleDB for IoT telemetry data
  • Leveraging Elasticsearch for fast full-text search in a content platform

Frequently Asked Questions

Add this skill to your agents

Related Skills

Sponsor this space

Reach thousands of developers