data-management について
データベースの設計や保守に取り組む開発者向けのデータ管理スキルです。スキーマ設計、マイグレーション、インデックス、バックアップに加え、安全な変更や整合性制約の指針を扱います。
主な機能
- 01正規化と非正規化の指針
- 02前進のみのマイグレーション手法
- 03インデックス選択の戦略
- 04バックアップと復旧の計画
- 05コネクションプールと整合性制約
活用シーン
- 01テーブル、関係、制約の設計
- 02バージョン管理されたスキーマ変更の計画
- 03インデックスによるクエリ性能の改善
- 04データベースの復旧と接続管理の準備
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ dralgorhythm/ claude-agentic-framework --skill data-managementインストール後、Claude Code で/data-managementを入力して読み込まれたか確認します。
詳細
データ管理
ワークフロー
- スキーマ設計:テーブル、リレーションシップ、制約を定義します
- マイグレーション:スキーマの変更をバージョン管理します
- インデックス作成:クエリのパフォーマンス向上のためにインデックスを追加します
- バックアップ:データを復旧できるようにします
スキーマ設計の原則
正規化
- 第1正規形:値は原子的で、繰り返しグループがありません
- 第2正規形:部分関数従属性がありません
- 第3正規形:推移的関数従属性がありません
非正規化する場合
- 読み取りが多いワークロード
- レポート作成/分析
- キャッシュレイヤー
マイグレーションのベストプラクティス
前進のみのマイグレーション
各マイグレーションは、単一の前進ステップにします。
-- migrations/001_create_users.sql
CREATE TABLE users (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
email VARCHAR(255) NOT NULL UNIQUE,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
CREATE INDEX idx_users_email ON users(email);
安全なマイグレーション
- 最初はカラムを NULL 許容として追加します
- インデックスは同時に作成します
- 同じデプロイでカラムを削除しないでください
インデックス戦略
-- B-tree (default): Equality and range queries
CREATE INDEX idx_users_email ON users(email);
-- Partial index: When you query a subset
CREATE INDEX idx_active_users ON users(id) WHERE active = true;
-- Composite index: Multiple columns
CREATE INDEX idx_orders_user_date ON orders(user_id, created_at DESC);
接続管理
// Use connection pooling
const pool = new Pool({
max: 20, // Max connections
idleTimeoutMillis: 30000, // Close idle connections
connectionTimeoutMillis: 2000
});
データの整合性
- 外部キー制約を使用します
- 適切な場合は NOT NULL を追加します
- 検証には CHECK 制約を使用します
- 固定値には ENUM 型の使用を検討します
コメント
Markdown 対応