Agent skill
database-design
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の実践的な使用方法 公式で確認すべきこと: 最新のデータベース機能、パフォーマンスチューニング、セキュリティベストプラクティス、バージョン固有の機能
主要な公式ドキュメント
-
PostgreSQL Documentation - 世界で最も高度なオープンソースデータベース
-
MySQL Documentation - 最も人気のあるオープンソースデータベース
-
MongoDB Manual - NoSQLドキュメント指向データベース
-
Prisma Documentation - 次世代TypeScript ORM
関連リソース
- Database Normalization (Wikipedia) - 正規化理論の包括的な解説
- Use The Index, Luke - SQLインデックスのパフォーマンス最適化ガイド
- DB-Engines Ranking - データベース管理システムの人気度ランキング
詳細ガイド
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週間)
- 正規化の基礎(1NF〜3NF)
- 基本的なリレーションシップ設計
- Prismaによるスキーマ定義とマイグレーション
- 基本的なインデックス作成
中級(2-4週間)
- インデックス設計と最適化(複合インデックス、Covering Index)
- EXPLAIN ANALYZEによるクエリ分析
- N+1問題の解消とJOIN最適化
- Redisキャッシュ導入
- ゼロダウンタイムマイグレーション
上級(4-8週間)
- 高度なインデックス戦略(部分インデックス、式インデックス、GIN)
- パーティショニング・シャーディング
- Blue-Greenデプロイ戦略
- 大規模データの移行とバッチ処理
- 災害復旧計画とPoint-in-Time Recovery
- 包括的なモニタリング・アラート設定
関連スキル
- 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例
- チェックリスト: インデックス設計、パフォーマンス最適化
- 実測データ: すべてのガイドに具体的な改善数値を掲載
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
computer-science-fundamentals
A comprehensive guide covering the fundamentals of computer science. From hardware internals and data representation to algorithms, data structures, computation theory, programming paradigms, and software engineering basics — a systematic guide to all the CS foundations every engineer needs.
operating-system-guide
programming-language-fundamentals
algorithm-and-data-structures
linux-cli-mastery
aws-cloud-guide
Didn't find tool you were looking for?