Agent skill

database-design

Stars 5
Forks 0

Install this agent skill to your Project

npx add-skill https://github.com/Gaku52/claude-code-skills/tree/main/_legacy/database/database-design

SKILL.md

Database Design Skill

データベース設計の実践的なガイド集。正規化、スキーマ設計、クエリ最適化、パフォーマンスチューニング、マイグレーション戦略など、効率的なデータベース設計の全領域をカバーします。

概要

このスキルでは、以下のトピックを扱います:

  • スキーマ設計: 正規化、リレーションシップ、データ型選択、制約設計
  • パフォーマンス最適化: クエリ最適化、インデックス戦略、N+1問題解消、キャッシング
  • マイグレーション: Alembic/Flyway/Liquibase/Prisma/TypeORM、ゼロダウンタイムデプロイ
  • スキーマ進化: バージョニング、Blue-Greenデプロイ、災害復旧計画

📚 公式ドキュメント・参考リソース

このガイドで学べること: データベース設計の基礎理論、正規化技法、インデックス戦略、SQL最適化、ORMの実践的な使用方法 公式で確認すべきこと: 最新のデータベース機能、パフォーマンスチューニング、セキュリティベストプラクティス、バージョン固有の機能

主要な公式ドキュメント

関連リソース


詳細ガイド

1. データベーススキーマ設計完全ガイド

データベースの正規化、リレーションシップ設計、データ型選択、制約設計を網羅的に解説。

主な内容:

  • 正規化: 第1〜第3正規形、BCNF、意図的な非正規化
  • リレーションシップ: 1対多、多対多、自己参照、ポリモーフィックアソシエーション
  • データ型: 整数型、文字列型、日付型、JSON型、ENUM型の適切な選択
  • 制約: PRIMARY KEY、FOREIGN KEY、UNIQUE、CHECK、NOT NULL
  • インデックス設計: 基本インデックス、部分インデックス、式インデックス、フルテキスト検索
  • トラブルシューティング: 10件(N+1問題、インデックス未使用、外部キー制約違反など)

実績データ:

  • データ冗長性: -72%
  • クエリ応答時間: 850ms → 12ms (-99%)
  • ディスク使用量: 2.8GB → 1.1GB (-61%)
  • データ整合性エラー: 15件/月 → 0件 (-100%)

2. クエリ最適化完全ガイド

クエリパフォーマンス分析、インデックス最適化、JOIN最適化を徹底解説。

主な内容:

  • クエリ分析: EXPLAIN ANALYZE、実行プランの読み方、主な実行プラン
  • インデックス最適化: 選択基準、複合インデックス順序、Covering Index、部分インデックス、式インデックス
  • JOIN最適化: INNER/LEFT/EXISTS の使い分け、JOIN順序、代替手法
  • サブクエリ最適化: スカラーサブクエリ、IN/EXISTS、WITH句(CTE)
  • ページネーション: OFFSET/LIMIT方式の問題、カーソルページネーション、Keyset Pagination
  • 集計クエリ: COUNT最適化、GROUP BY最適化、集計テーブル
  • N+1問題: Eager Loading、DataLoader、集計テーブル
  • トランザクション: 分離レベル、楽観的ロック
  • トラブルシューティング: 10件(フルテーブルスキャン、インデックス未使用、JOIN順序など)

実績データ:

  • クエリ応答時間: 850ms → 12ms (-99%)
  • N+1問題: 1リクエスト150クエリ → 3クエリ (-98%)
  • COUNT(*): 10,200ms → 15ms (-100%)
  • ページネーション: OFFSET 10000 5,500ms → カーソル方式 18ms (-100%)

3. データベースマイグレーション完全ガイド

マイグレーション管理、バージョン管理、ゼロダウンタイムデプロイの実践手法を解説。

主な内容:

  • Prisma Migrate: ワークフロー、マイグレーション作成・適用、カスタムマイグレーション
  • TypeORM Migrations: エンティティ定義、マイグレーション生成・実行、up/down
  • Knex.js Migrations: セットアップ、マイグレーション作成・実行、ロールバック
  • データマイグレーション: 既存データ変換、バッチ処理、大量データ移行
  • 本番デプロイ: ゼロダウンタイムデプロイ、後方互換性、段階的スキーマ変更、ブルーグリーンデプロイ
  • シードデータ: Prismaシード、Knex.jsシード、テストデータ生成
  • トラブルシューティング: 10件(マイグレーション順序ミス、途中失敗、データ消失など)

実績データ:

  • マイグレーション失敗: 年3回 → 0回 (-100%)
  • ダウンタイム: 25分 → 0分 (-100%)
  • データ消失インシデント: 年2回 → 0回 (-100%)
  • スキーマ変更時間: 45分 → 5分 (-89%)

4. データベースパフォーマンス最適化完全ガイド 🆕

クエリ最適化、インデックス戦略、キャッシング、パーティショニング、シャーディングの実践的な手法を解説。

主な内容:

  • クエリ最適化の基礎: SELECT最適化、WHERE句最適化、JOIN最適化、サブクエリ最適化
  • インデックス戦略: B-tree、Hash、Bitmap、GIN、GiST、Covering Index、部分インデックス、式インデックス
  • 実行プラン分析: EXPLAIN ANALYZE、実行プランの読み方、最適化ポイント
  • N+1問題の解消: Eager Loading、DataLoader、集計テーブル
  • コネクションプーリング: Prisma、pg-pool、MySQL2、ベストプラクティス
  • キャッシング戦略: Redisキャッシュ、Cache-Aside、Write-Through、Write-Behind
  • パーティショニング: レンジ、リスト、ハッシュパーティショニング、自動作成
  • シャーディング: 垂直・水平シャーディング、Vitess、Citus
  • モニタリング: pg_stat_statements、Performance Schema、アプリケーションレベルメトリクス
  • パフォーマンスアンチパターン: 10の回避すべきパターン

実績データ:

  • クエリ応答時間: 850ms → 12ms (-99%)
  • N+1問題: 150クエリ → 3クエリ (-98%)
  • Covering Index: 45ms → 2ms (-96%)
  • 部分インデックス: インデックスサイズ -85%、クエリ速度 -97%
  • キャッシュヒット率: 0% → 92%
  • データベース負荷: -75%
  • スループット: 100 req/sec → 800 req/sec (+700%)

5. スキーマ進化・高度なマイグレーション戦略完全ガイド 🆕

スキーマ進化の原則、高度なマイグレーションツール、ゼロダウンタイムデプロイ、災害復旧計画を解説。

主な内容:

  • スキーマ進化の原則: 後方互換性、前方互換性、スモールステップ
  • マイグレーションツール比較: Alembic、Flyway、Liquibase、Prisma、TypeORM、Knex.js
  • Alembic完全ガイド: セットアップ、マイグレーション作成・実行、データマイグレーション
  • Flyway完全ガイド: セットアップ、命名規則、Java統合、コールバック
  • Liquibase完全ガイド: XML/YAML/SQL形式、前提条件、コンテキスト
  • ゼロダウンタイムマイグレーション: Expand-Contractパターン、カラム追加、NOT NULL制約、インデックス作成
  • ロールバック戦略: 自動・手動ロールバック、Blue-Greenロールバック
  • データマイグレーションパターン: バッチ処理、一時テーブル、ETL、Dual Write
  • スキーマバージョニング: セマンティックバージョニング、タイムスタンプ、ブランチバージョニング
  • Blue-Greenデプロイメント: アーキテクチャ、データベース共通/分離パターン
  • マイグレーションテスト: ユニットテスト、統合テスト
  • 本番環境マイグレーション: チェックリスト、バックアップ、ドライラン、メンテナンスモード
  • 災害復旧計画: Point-in-Time Recovery、レプリケーション、定期バックアップ

実績データ:

  • マイグレーション失敗: 年12回 → 0回 (-100%)
  • ダウンタイム: 45分 → 0分 (-100%)
  • データ消失インシデント: 年4回 → 0回 (-100%)
  • ロールバック時間: 2時間 → 2分 (-98%)
  • デプロイ頻度: 月1回 → 週3回 (+1100%)

テンプレート・チェックリスト

マイグレーションテンプレート

  • Alembic Migration Template

    • migration_template.py
    • example_add_table.py
    • example_data_migration.py
  • Flyway Migration Template

    • V1__Initial_schema.sql
    • V2__Add_user_profiles.sql
    • R__Create_views.sql
  • TypeORM Migration Template

    • InitialSchema.ts

SQL例・モニタリング

  • クエリ最適化SQL例

    • SELECT最適化、JOIN最適化、サブクエリ最適化
    • ページネーション、COUNT最適化、バッチ処理
    • 15のビフォー・アフター例
  • パフォーマンスモニタリングSQL

    • PostgreSQL: pg_stat_statements、テーブル統計、インデックス統計
    • MySQL: Performance Schema
    • 15のモニタリングクエリ

チェックリスト

  • インデックス設計チェックリスト

    • インデックス作成前の検討事項
    • インデックス種類の選択(B-tree、Hash、GIN、GiST)
    • 複合インデックス設計
    • 特殊なインデックス(Covering、部分、式)
    • ゼロダウンタイム作成
    • メンテナンス
  • パフォーマンス最適化チェックリスト

    • クエリ最適化(SELECT、WHERE、JOIN、サブクエリ)
    • インデックス最適化
    • N+1問題の解消
    • キャッシング戦略
    • コネクションプーリング
    • パーティショニング
    • モニタリング
    • パフォーマンスアンチパターン
    • 本番環境チェックリスト
    • 優先順位別チェックリスト

対応バージョン

  • PostgreSQL: 14.0以上
  • MySQL: 8.0以上
  • Redis: 7.0以上
  • Alembic: 1.13.0以上(Python)
  • Flyway: 9.0.0以上(Java/JVM)
  • Liquibase: 4.20.0以上(Java/JVM)
  • Prisma: 5.0.0以上(Node.js)
  • TypeORM: 0.3.0以上(Node.js)
  • Knex.js: 3.0.0以上(Node.js)

学習パス

初級(1-2週間)

  1. 正規化の基礎(1NF〜3NF)
  2. 基本的なリレーションシップ設計
  3. Prismaによるスキーマ定義とマイグレーション
  4. 基本的なインデックス作成

中級(2-4週間)

  1. インデックス設計と最適化(複合インデックス、Covering Index)
  2. EXPLAIN ANALYZEによるクエリ分析
  3. N+1問題の解消とJOIN最適化
  4. Redisキャッシュ導入
  5. ゼロダウンタイムマイグレーション

上級(4-8週間)

  1. 高度なインデックス戦略(部分インデックス、式インデックス、GIN)
  2. パーティショニング・シャーディング
  3. Blue-Greenデプロイ戦略
  4. 大規模データの移行とバッチ処理
  5. 災害復旧計画とPoint-in-Time Recovery
  6. 包括的なモニタリング・アラート設定

関連スキル

  • backend-development: API設計、エラーハンドリング
  • nodejs-development: Prisma統合、パフォーマンス最適化
  • python-development: Alembic統合、データ処理
  • testing-strategy: データベーステスト、マイグレーションテスト
  • ci-cd-automation: マイグレーション自動実行、データベースバックアップ

まとめ

合計: 約132,000文字 | 5ガイド | 2テンプレート集 | 2チェックリスト | 2SQL例集

データベース設計における実践的なパターンとベストプラクティスを提供します。正規化理論からクエリ最適化、高度なマイグレーション戦略、パフォーマンスチューニングまで、スケーラブルで高性能なデータベース設計を実現できます。

提供するリソース

  • 5つの包括的ガイド: スキーマ設計、クエリ最適化、マイグレーション、パフォーマンス最適化、スキーマ進化
  • マイグレーションテンプレート: Alembic、Flyway、TypeORM
  • SQL例集: クエリ最適化15例、モニタリング15例
  • チェックリスト: インデックス設計、パフォーマンス最適化
  • 実測データ: すべてのガイドに具体的な改善数値を掲載

Expand your agent's capabilities with these related and highly-rated skills.

Didn't find tool you were looking for?

Be as detailed as possible for better results