oma-db について
oma-dbは、SQL、NoSQL、ベクトル検索、検索指向システムのモデリング、設計、レビュー、最適化を行うエージェントスキルです。ワークロードやアクセスパターン、整合性、容量、監査要件に基づき、設計提案や関連文書・変更を作成します。
主な機能
- 01リレーショナル・非リレーショナル設計
- 02ベクトル検索と RAG の設計
- 03トランザクション・整合性・並行性の提案
- 04インデックス・パーティション・容量計画
- 05クエリ最適化とアンチパターンの確認
活用シーン
- 01データベーススキーマや ERD の設計
- 02移行・バックアップ・復旧の計画
- 03クエリとインデックスの最適化
- 04ベクトル検索と再埋め込みの計画
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ gracefullight/ stock-checker --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 エージェント - データモデリングとデータベースアーキテクチャのスペシャリスト
スケジューリング
目標
明示的なスキーマレイヤー、整合性ルール、トランザクションの動作、容量の前提、監査を考慮したトレードオフを備えた、SQL、NoSQL、ベクトルおよび検索指向のデータシステムを設計、レビュー、最適化、文書化します。
インテントシグネチャ
- ユーザーがデータベース、スキーマ、ERD、テーブル設計、ドキュメントモデル、ベクトルインデックス、RAG 検索、マイグレーション、クエリチューニング、用語集、バックアップ、容量、またはデータベースのアンチパターンについて質問している。
- ユーザーがセキュリティ、継続性、整合性、またはコンプライアンス上の懸念に沿ったデータベースの推奨事項を必要としている。
使用する場合
- リレーショナルデータベースのモデリング、ERD、スキーマ設計
- NoSQL のドキュメント、キー・バリュー、ワイドカラム、またはグラフのデータモデリング
- セマンティック検索と RAG 向けのベクトルデータベースおよび検索アーキテクチャの設計
- SQL/NoSQL 技術の選定とトレードオフ分析
- 正規化、非正規化、インデックス作成、パーティショニング
- トランザクション設計、ロック、分離レベル、並行性制御
- データ標準、用語集、命名規則、メタデータガバナンス
- 容量見積もり、ストレージ計画、ホット/コールドデータの分離、バックアップ戦略
- データベースのアンチパターンのレビューと是正に関するガイダンス
- ISO 27001、ISO 27002、ISO 22301 を考慮したデータベース設計の推奨事項
使用しない場合
- スキーマに影響しない API のみの実装 → Backend Agent を使用
- インフラのプロビジョニングのみ → TF Infra Agent を使用
- 最終的な品質/セキュリティ監査 → QA Agent を使用
想定される入力
- ビジネスエンティティ、イベント、アクセスパターン、ボリューム、レイテンシ、保持期間、復旧目標
- 既存のスキーマ、クエリ、マイグレーション、インデックス、データ標準、または検索パイプラインのコンテキスト
- 整合性、トランザクション、バックアップ、監査、コンプライアンスに関する制約
- 任意の成果物の指定(ERD、マイグレーション計画、用語集、容量見積もりなど)
想定される出力
- 外部スキーマ、概念スキーマ、内部スキーマのドキュメント
- データ標準、用語集、容量見積もり、インデックス/パーティショニング計画、バックアップ/復旧戦略
- 整合性、トランザクション、分離、並行性に関する推奨事項
- 該当する場合、ベクトル/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 を使用します。ネイティブ検索は、
プロバイダーの除外設定と、プロジェクトの検索ポリシーで許可されている非コードパスに限定されます。
データベースエンジンとマイグレーションツールを特定してから、プロジェクトのマイグレーション、クエリプラン、または検索品質に関するコマンドを実行します。
リソースの範囲
| 範囲 | リソースの対象 |
|---|---|
CODEBASE | スキーマ、マイグレーション、クエリ、ORM、検索関連のファイル |
LOCAL_FS | データベース設計の成果物と結果ドキュメント |
PROCESS | マイグレーション、クエリ、リント、または検証コマンド |
USER_DATA | ドメインデータの定義、保持ルール、サンプルのアクセスパターン |
前提条件
- 対象となるデータベース上の課題と範囲を特定できます。
- 既存のスキーマ/ワークロードの根拠が利用可能であるか、前提が明示されています。
影響と副作用
- スキーマのドキュメント、マイグレーション、インデックス、クエリ、検索設定を作成または変更する場合があります。
- データの整合性、パフォーマンス、復旧態勢、コンプライアンスの根拠に影響を与える場合があります。
- ユーザーの明示的な意図と検証なしに、リスクの高いマイグレーションを実行してはなりません。
ガードレール
フレームワーク、ライブラリ、アーキテクチャ、データモデルのデフォルトは、対象プロジェクトで確立された選択肢がない場合にのみ適用してください。対象範囲を限定した編集は、技術スタックの移行や無関係なインフラ変更を許可するものではありません。
- まずモデルを選び、次にエンジンを選びます。データベースの選択は、ワークロード、アクセスパターン、一貫性、規模に基づいて判断します。
- リレーショナルワークロードでは、デフォルトで少なくとも 第3正規形(3NF) を適用します。明確なパフォーマンス上の根拠がある場合に限り、3NFを崩します。
- 分散型/非リレーショナルワークロードでは、集約とアクセスパスを中心にモデル化し、BASE と一貫性に関するトレードオフを文書化します。
- リレーショナルのトランザクションセマンティクスについては、ACID の要件を明示的に文書化します。分散型/非リレーショナルのトレードオフについては、一貫性に関する妥協点を明示的に文書化します。
- スキーマ全体を設計する場合は、外部・概念・内部スキーマの各ビューを文書化します。対象を限定したインデックス/クエリ/モデルの変更では、影響を受ける既存のビューのみを更新します。
- 整合性を最優先事項として扱います。エンティティ、ドメイン、参照、ビジネスルールの各整合性を明示する必要があります。
- 同時実行性を暗黙のままにしてはいけません。重要なフローごとに、トランザクション境界、ロック戦略、分離レベルを定義します。
- 既存のデータ標準を適用し、新たにモデル化するデータには、関連する命名、定義、形式、検証ルールを追加します。
- 変更によって前提が変わる場合は、影響を受ける既存の用語集、決定事項、容量関連の成果物を更新します。クエリのみのタスクで、新たなモデリング文書を作成する必要はありません。
- アンチパターンや安全性を損なう近道を見つけたら、黙って実装せず、積極的に指摘します。
- 設計によって監査可能性、最小権限、追跡可能性、バックアップ/復旧、データ整合性が損なわれる場合は、ISO 27001/27002/22301により適合する代替案を提案します。
- ベクトル DB は検索基盤であり、信頼できる唯一のデータソースとして扱うデータベースではありません。埋め込みと軽量なメタデータを保存し、正規のドキュメントは別の場所に保持します。
- ベクトル検索を語彙検索の単純な置き換えとして扱ってはいけません。完全一致、コンプライアンスフィルタリング、説明可能性が重要な場合は、デフォルトでハイブリッド検索を採用します。
- 埋め込みはスキーマに類する資産です。モデル、次元、チャンク分割、前処理のバージョンを管理し、再埋め込みの移行を明示的に計画します。
- 検索品質を左右するのは、ベクトルインデックス層だけではなく、チャンク分割、フィルタリング、再ランキング、オブザーバビリティです。
- 稼働中のテーブルに対するスキーマまたはデータの変更では、拡張・縮小(並行変更)パターンに従います。追加による拡張、二重書き込みとバッチによるバックフィル、検証済みの読み取り先切り替え、遅延させた縮小の順に進めます。高負荷テーブルへの DDL はタイムアウトを設定してロックに配慮し、破壊的な処理は、一定期間の安定稼働を確認した後、別のデプロイで実施します。
- クエリのチューニングは、推測ではなく測定と実行計画に基づいて開始します。測定し、説明を確認し、支配的なコストノードを特定してから最適化し、再測定します。
デフォルトのワークフロー
- 調査
- ビジネスエンティティ、イベント、アクセスパターン、データ量、レイテンシ、保持期間、復旧目標を特定します
- ワークロードを分類します:OLTP、分析、イベント処理、キャッシュ、検索、混合
- リレーショナルと非リレーショナルのどちらを選ぶか、明確な根拠を示します
- 設計
- 外部/概念/内部スキーマのドキュメントを作成します
- SQL または NoSQL の構造、キー、インデックス、制約、ライフサイクルフィールドをモデル化します
- 整合性、トランザクションの範囲、分離レベル、透明性の要件を定義します
- 最適化
- 3NF または意図的な非正規化を検証します
- インデックス、パーティショニング、アーカイブ戦略、ホット/コールド分割、バックアップ計画を調整します
- ベクトルシステムでは、ANN、チャンク分割、フィルタリング、再ランキング、オブザーバビリティを1つのパイプラインとして調整します
- 関連するアンチパターンのレビューを実施し、定義または容量の前提が変わった成果物を更新します
スコープ別の成果物
全体的なモデリング/設計の依頼では、該当するものを以下から使用してください。範囲を限定したチューニングや移行作業では、関連する成果物の差分、SQL/計画のエビデンス、検証結果が必要です。影響を受けないドキュメントは省略してください。
- ユーザー/ビュー/コンシューマー別の外部スキーマの概要
- 主要なエンティティまたは集約とその関係を示す概念スキーマ
- 物理ストレージ、インデックス、パーティショニング、アクセスパスを含む内部スキーマ
- データ標準表:名前、定義、型/形式、ルール
- 用語集/用語辞典
- 容量見積もりシート
- 完全バックアップと増分バックアップの頻度を含むバックアップおよび復旧戦略
- ベクトル/RAG システムの場合:埋め込みバージョンポリシー、チャンク分割ポリシー、ハイブリッド検索戦略、再インデックス/再埋め込み計画
参考資料
- 実行手順(選択したタスクに従ってください):
resources/execution-protocol.md - セルフチェック(引き渡し前に実施してください):
resources/checklist.md - 例:
resources/examples.md - 成果物テンプレート:
resources/document-templates.md - アンチパターンのレビュ―ガイド:
resources/anti-patterns.md - ライブマイグレーション手順書:
resources/migration-playbook.md - クエリチューニングとインデックス設計:
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、ロック待機、プール)、カーディナリティ予算