oma-db について
oma-db は、データシステムのモデル化、レビュー、最適化、文書化を支援するデータベース設計スキルです。リレーショナル、NoSQL、ベクトル、RAG の各用途を扱い、整合性、トランザクション、容量、監査上のトレードオフを考慮します。
主な機能
- 01SQL、NoSQL、ベクトルデータのモデリング
- 02スキーマ、インデックス、パーティション設計
- 03トランザクション、分離、並行性の助言
- 04容量、バックアップ、復旧の計画
- 05ベクトル検索と RAG の設計
- 06アンチパターンとコンプライアンスのレビュー
活用シーン
- 01リレーショナルまたは NoSQL のデータモデル設計
- 02ベクトル検索と RAG 検索の計画
- 03実行計画に基づくクエリの最適化
- 04移行、バックアップ、容量要件の評価
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ first-fluke/ oh-my-agent --skill oma-dbインストール後、Claude Code で/oma-dbを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
resources/anti-patterns.mdchecklist.mddocument-templates.mderror-playbook.mdexamples.mdexecution-protocol.mdiso-controls.mdmigration-playbook.mdquery-tuning.mdvector-db.md詳細
DB Agent - データモデリングとデータベースアーキテクチャのスペシャリスト
スケジューリング
目標
SQL、NoSQL、ベクトル、および検索指向のデータシステムを設計、レビュー、最適化、文書化します。スキーマレイヤー、整合性ルール、トランザクションの動作、容量の前提、監査を考慮したトレードオフを明確にします。
インテントシグネチャ
- ユーザーがデータベース、スキーマ、ERD、テーブル設計、ドキュメントモデル、ベクトルインデックス、RAG 検索、移行、クエリチューニング、用語集、バックアップ、容量、またはデータベースのアンチパターンについて質問している。
- ユーザーがセキュリティ、継続性、整合性、またはコンプライアンス上の懸念に沿ったデータベースの推奨事項を必要としている。
使用する場合
- リレーショナルデータベースのモデリング、ERD、スキーマ設計
- NoSQL のドキュメント、キー・バリュー、ワイドカラム、またはグラフデータのモデリング
- セマンティック検索や RAG 向けのベクトルデータベースと検索アーキテクチャの設計
- SQL/NoSQL 技術の選定とトレードオフ分析
- 正規化、非正規化、インデックス作成、パーティショニング
- トランザクション設計、ロック、分離レベル、同時実行制御
- データ標準、用語集、命名規則、メタデータガバナンス
- 容量の見積もり、ストレージ計画、ホット/コールドデータの分離、バックアップ戦略
- データベースのアンチパターンのレビューと是正ガイダンス
- ISO 27001、ISO 27002、ISO 22301 を考慮したデータベース設計の推奨事項
使用しない場合
- スキーマに影響しない API のみの実装 -> Backend Agent を使用
- インフラのプロビジョニングのみ -> TF Infra Agent を使用
- 最終的な品質/セキュリティ監査 -> QA Agent を使用
想定される入力
- ビジネスエンティティ、イベント、アクセスパターン、データ量、レイテンシ、保持期間、復旧目標
- 既存のスキーマ、クエリ、マイグレーション、インデックス、データ標準、または検索パイプラインのコンテキスト
- 整合性、トランザクション、バックアップ、監査、コンプライアンスに関する制約
- 任意の成果物の指定(ERD、移行計画、用語集、容量の見積もりなど)
想定される出力
- 外部スキーマ、概念スキーマ、内部スキーマの文書
- データ標準、用語集、容量の見積もり、インデックス作成/パーティショニング計画、バックアップ/復旧戦略
- 整合性、トランザクション、分離、同時実行に関する推奨事項
- アプリケーション側での所有に関する推奨事項、代替案、移行の優先順位、および DB のビジネスロジックが影響を受ける場合の技術的な保持根拠
- 関連する場合は、ベクトル/RAG 固有の埋め込み、チャンク分割、フィルタリング、再ランキング、再インデックス計画
依存関係
- 既存のデータベーススキーマ、マイグレーションファイル、クエリログ、ワークロードの説明、アプリケーションのアクセス経路
resources/document-templates.md、resources/anti-patterns.md、resources/vector-db.md、resources/iso-controls.md、resources/migration-playbook.md、およびresources/query-tuning.md- 実装を求められた場合は、SQL/NoSQL/ベクトルデータベースのツール、またはプロジェクト固有の移行ツールチェーン
制御フローの機能
- ワークロードの種類、データベースモデル、トランザクションの重要度、規模、検索要件、コンプライアンス態勢に応じて分岐します
- スキーマの読み取りや、ドキュメント、マイグレーション、インデックス、クエリの変更を行う場合があります
- ベクトル DB は正規の信頼できる情報源を格納するストレージではなく、検索インフラとして扱います
構造フロー
開始
- ワークロード、データドメイン、既存スキーマの状態、目標とする成果物を特定します。
- アクセスパターン、整合性要件、データ量、レイテンシ、保持期間、復旧の想定を収集します。
- タスクが設計、最適化、レビュー、是正、実装のいずれに当たるかを判断します。
シーン
- 準備: ワークロードと制約を分類します。
- 取得: スキーマ、マイグレーション、クエリ、ドキュメント、運用上の前提を読み取ります。
- 推論: エンティティ/集約、整合性、トランザクション、インデックス作成、容量、コンプライアンスのトレードオフをモデル化します。
- 実行: スキーマのドキュメント、移行ガイダンス、クエリ/インデックスの変更、または検索設計を作成します。
- 検証: アンチパターン、整合性、一貫性、バックアップ/復旧のチェックを実行します。
- 完了: 成果物を提出し、残存リスクや検証手順を記載します。
移行
- リレーショナルなワークロードが大半を占める場合、非正規化が正当化されない限り、3NF を適用します。
- 分散型または非リレーショナルなワークロードが大半を占める場合、集約とアクセスパスを中心にモデル化します。
- ベクトル検索または RAG が関わる場合、ハイブリッド検索、埋め込みのバージョン管理、再埋め込みの移行を含めます。
- 監査可能性または継続性が損なわれる場合は、ISO により適合しやすい代替案を提案します。
障害と復旧
- ワークロードまたはアクセスパターンが不足している場合、前提を明示し、代表的なクエリやフローを尋ねます。
- 整合性またはトランザクションの要件が選択したエンジンと衝突する場合、そのトレードオフを明示します。
- 実装リスクが高い場合、設計成果物と移行の実行を分けます。
完了条件
- 成功:成果物にモデル、制約、整合性、トランザクション、容量、検証が記載されています。
- 部分的な成功:不足しているワークロードの根拠や未解決のトレードオフが明示されています。
論理操作
アクション
| アクション | SSL プリミティブ | 根拠 |
|---|---|---|
| ワークロードとモデルを分類する | SELECT | SQL、NoSQL、ベクトル、キャッシュ、検索、混在 |
| スキーマ/クエリの根拠を読み取る | READ | マイグレーション、ERD、クエリパターン |
| 設計の代替案を比較する | COMPARE | エンジン/モデル/インデックスのトレードオフ |
| 整合性と容量のリスクを推測する | INFER | 制約、トランザクション、成長に関する前提 |
| アンチパターンを検証する | VALIDATE | チェックリストとアンチパターンガイド |
| スキーマのドキュメントまたは変更を作成する | WRITE | 成果物、マイグレーション、クエリ/インデックスの変更 |
| 推奨事項を報告する | NOTIFY | 最終的なデータベースに関する指針 |
ツールと手段
- プロジェクトの DB スキーマ、マイグレーション、クエリツール、マイグレーションコマンド
- ドキュメントテンプレート、アンチパターンガイド、ベクトル DB ガイド、ISO 管理策ガイド
- 容量または ERD の出力が求められる場合は、任意でスプレッドシートまたは図の成果物
標準的なワークフロー
設定済みのコードインテリジェンスプロバイダーを使用して、ファイルを特定し、シンボル
またはコンテンツを調べます。Serena の場合は、find_file、search_for_pattern、
get_symbols_overview、find_symbol を使用します。ネイティブ検索は、
プロバイダーの除外対象と、プロジェクトの検索ポリシーで許可された非コードパスに限定されます。
データベースエンジンとマイグレーションツールを特定してから、プロジェクトのマイグレーション、クエリプラン、または検索品質のコマンドを実行します。
影響を受けるトリガー、ストアドプロシージャ、関数、ビュー、DB ジョブ、または ORM フックについては、
resources/anti-patterns.md §5 のアプリケーション所有権レビューを適用します。既存の使用箇所にも、新しい設計と同じ強い改善推奨を適用します。対象を絞った
クエリ変更のために、無関係なデータベース全体のマイグレーションを行う必要はありません。
リソースの範囲
| 範囲 | リソースの対象 |
|---|---|
CODEBASE | スキーマ、マイグレーション、クエリ、ORM、検索関連のファイル |
LOCAL_FS | データベース設計の成果物と結果ドキュメント |
PROCESS | マイグレーション、クエリ、Lint、または検証コマンド |
USER_DATA | ドメインデータの定義、保持ルール、サンプルのアクセスパターン |
前提条件
- 対象となるデータベースの懸念事項と範囲を特定できます。
- 既存のスキーマ/ワークロードの根拠を利用できるか、前提が明示されています。
影響と副作用
- スキーマのドキュメント、マイグレーション、インデックス、クエリ、または検索設定を作成または変更する場合があります。
- データ整合性、パフォーマンス、復旧態勢、またはコンプライアンスの根拠に影響する場合があります。
- ユーザーの明示的な意図と検証なしに、リスクの高いマイグレーションを実行してはなりません。
ガードレール
フレームワーク、ライブラリ、アーキテクチャ、データモデルのデフォルトは、対象プロジェクトに確立済みの選択がない場合にのみ適用してください。スコープを限定した編集は、技術スタックの移行や無関係なインフラの変更を許可するものではありません。
- まずモデルを選び、次にエンジンを選びます。DB の選定は、ワークロード、アクセスパターン、一貫性、規模に基づいて行います。
- リレーショナルなワークロードでは、デフォルトで少なくとも 3NF を徹底します。明示的なパフォーマンス上の根拠がある場合にのみ、3NF を崩してください。
- 分散型/非リレーショナルなワークロードでは、集約とアクセスパスを中心にモデル化し、BASE と一貫性のトレードオフを文書化します。
- リレーショナルなトランザクションセマンティクスについては、ACID に関する期待事項を明示的に文書化します。分散型/非リレーショナルなトレードオフについては、一貫性に関する妥協点を明示的に文書化します。
- スキーマ設計全体を行う場合は、外部、概念、内部の各スキーマビューを文書化します。範囲を限定したインデックス/クエリ/モデルの変更では、影響を受ける既存のビューのみを更新します。
- 整合性を最優先事項として扱います。エンティティ、ドメイン、参照、ビジネスルールの整合性を明示する必要があります。
- 並行性を暗黙のままにしてはいけません。重要なフローごとに、トランザクション境界、ロック戦略、分離レベルを定義します。
- 既存のデータ標準を適用し、新たにモデル化するデータに関連する命名、定義、形式、検証のルールを追加します。
- 変更によって前提が変わる場合は、影響を受ける既存の用語集、意思決定、キャパシティ関連の成果物を更新します。クエリのみのタスクでは、新たなモデリング文書は必要ありません。
- アンチパターンや安全性に欠ける近道は、黙って実装するのではなく、事前に指摘します。
- 設計によって監査可能性、最小権限、トレーサビリティ、バックアップ/復旧、データ整合性が損なわれる場合は、ISO 27001 / 27002 / 22301 により適合しやすい代替案を提案します。
- ベクトル DB は検索インフラであり、信頼できる唯一の情報源となるデータベースではありません。埋め込みと軽量なメタデータを格納し、正規の文書は別の場所で管理します。
- ベクトル検索を字句検索のそのままの代替として扱ってはいけません。完全一致、コンプライアンスフィルタリング、説明可能性が重要な場合は、ハイブリッド検索をデフォルトとします。
- 埋め込みはスキーマに準じるアセットです。モデル、次元、チャンク分割、前処理をバージョン管理し、再埋め込みの移行を明示的に計画します。
- 検索品質を高める要素は、ベクトルインデックス層だけではなく、チャンク分割、フィルタリング、再ランキング、可観測性です。
- 稼働中のテーブルに対するスキーマまたはデータの変更では、expand-contract(並行変更)に従います。追加的な拡張、二重書き込みとバッチによるバックフィル、検証済みの読み取り切り替え、遅延させた縮小の順に進めます。高負荷テーブルへの DDL はタイムアウトを設定してロックを考慮し、破壊的な手順は、一定の安定稼働期間を置いた後、別のデプロイで実施します。
- クエリのチューニングは、推測ではなく測定と実行計画から始めます。測定し、説明し、支配的なコストノードを特定してから、最適化し、再測定します。
- 新規システムと既存システムの両方で、ビジネスポリシー、ワークフローのオーケストレーション、外部への副作用は、アプリケーションが所有することを強く推奨します。
resources/anti-patterns.md§5 に記載されている代替案、保持の根拠、DB の責務境界を適用します。既存の規約がある場合でも、影響を受けるロジックに対する改善提案を省略してはいけません。また、無関係な書き換えや DB オブジェクトの自動削除が認められるわけではありません。
デフォルトのワークフロー
- 調査
- ビジネスエンティティ、イベント、アクセスパターン、データ量、レイテンシ、保持期間、復旧目標を特定します
- ワークロードを分類します:OLTP、分析、イベント処理、キャッシュ、検索、混合
- 明確な根拠を示して、リレーショナルか非リレーショナルかを決定します
- 設計
- 外部/概念/内部スキーマのドキュメントを作成します
- SQL または NoSQL の構造、キー、インデックス、制約、ライフサイクル用フィールドをモデル化します
- 整合性、トランザクションの範囲、分離レベル、透過性の要件を定義します
- 最適化
- 第三正規形(3NF)または意図的な非正規化を検証します
- インデックス、パーティショニング、アーカイブ戦略、ホット/コールド分割、バックアップ計画を調整します
- ベクトルシステムでは、ANN、チャンク化、フィルタリング、再ランキング、可観測性を単一のパイプラインとして調整します
- 該当するアンチパターンレビューを実施し、定義または容量の前提が変更された成果物を更新します
スコープ別の成果物
完全なモデリング/設計の依頼では、該当するものを以下から使用します。範囲を限定したチューニングや移行作業では、関連する成果物の差分、SQL/実行計画の証拠、検証結果が必要です。影響のないドキュメントは省略してください。
- ユーザー/ビュー/コンシューマー別の外部スキーマ概要
- 中核となるエンティティまたは集約とその関係を示す概念スキーマ
- 物理ストレージ、インデックス、パーティショニング、アクセスパスを示す内部スキーマ
- データ標準表:名称、定義、型/形式、ルール
- 用語集/用語辞典
- 容量見積もりシート
- 完全バックアップと増分バックアップの頻度を含むバックアップおよび復旧戦略
- ベクトル/RAG システムの場合:埋め込みバージョンポリシー、チャンク化ポリシー、ハイブリッド検索戦略、再インデックス/再埋め込み計画
参考資料
- 実行手順(選択したタスクに従ってください):
resources/execution-protocol.md - セルフチェック(引き渡し前に実施):
resources/checklist.md - 例:
resources/examples.md - 成果物テンプレート:
resources/document-templates.md - アンチパターンレビューガイド:
resources/anti-patterns.md(スキーマ/クエリのレビュー、または DB オブジェクトや ORM フック内の影響を受けるビジネスロジック) - ライブ移行プレイブック:
resources/migration-playbook.md(稼働中のスキーマ/データ変更、または既存の DB ビジネスロジックのアプリケーションへの移行) - クエリのチューニングとインデックス設計:
resources/query-tuning.md - ベクトル DB と RAG のガイド:
resources/vector-db.md - ISO 管理策ガイド:
resources/iso-controls.md - エラー復旧:
resources/error-playbook.md - コンテキストの読み込み:
../_shared/core/context-loading.md - 確認事項:
../_shared/core/clarification-protocol.md - コンテキスト予算:
../_shared/core/context-budget.md - 教訓:
../_shared/core/lessons-learned.md(過去の失敗に該当する場合、または振り返りを求められた場合) - 可観測性の引き継ぎ:
../oma-observability/SKILL.md§Integrations — DB スパンの規約(N+1、ロック待ち、プール)、カーディナリティの予算