mcpField
O
oma-db

oma-db

github.com/first-fluke数据与数据库1.4k68 次安装今天更新
代码仓库

关于 oma-db

oma-db 是面向数据库设计与架构工作的技能,适用于需要建模、评审、优化或记录数据系统的团队。它涵盖关系型、NoSQL、向量与 RAG 场景,并强调完整性、事务、容量及审计权衡。

主要功能

  1. 01SQL、NoSQL 与向量数据建模
  2. 02模式、索引与分区设计
  3. 03事务、隔离与并发建议
  4. 04容量、备份与恢复规划
  5. 05向量检索与 RAG 架构
  6. 06数据库反模式与合规评审

适用场景

  1. 01设计关系型或 NoSQL 数据模型
  2. 02规划向量搜索与 RAG 检索流程
  3. 03基于执行计划优化查询
  4. 04评估迁移、备份与容量需求

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/first-fluke/oh-my-agent --skill oma-db

安装后在 Claude Code 中输入/oma-db确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

resources/
anti-patterns.md
checklist.md
document-templates.md
error-playbook.md
examples.md
execution-protocol.md
iso-controls.md
migration-playbook.md
query-tuning.md
vector-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 视为检索基础设施,而非权威数据源存储

结构流程

入口
  1. 确定工作负载、数据域、现有架构状态和目标交付物。
  2. 收集访问模式、一致性需求、数据量、延迟、保留期限和恢复预期。
  3. 判断任务属于设计、优化、审查、修复还是实施。
阶段
  1. 准备:分类工作负载和约束。
  2. 收集:读取架构、迁移、查询、文档和运营假设。
  3. 分析:建模实体/聚合,分析完整性、事务、索引、容量和合规权衡。
  4. 执行:产出架构文档、迁移指导、查询/索引变更或检索设计。
  5. 验证:检查反模式、完整性、一致性和备份/恢复。
  6. 定稿:交付产物,并说明剩余风险或验证步骤。
转换
  • 如果关系型工作负载占主导,应采用 3NF,除非有充分理由进行反规范化。
  • 如果分布式/非关系型工作负载占主导,应围绕聚合和访问路径建模。
  • 如果涉及向量/RAG,应纳入混合检索、嵌入版本管理和重新嵌入迁移。
  • 如果可审计性或连续性有所削弱,应提出更符合 ISO 要求的替代方案。
故障与恢复
  • 如果缺少工作负载或访问模式信息,应说明假设,并索取有代表性的查询或流程。
  • 如果完整性或事务要求与所选引擎冲突,应说明其中的权衡。
  • 如果实现风险较高,应将设计工件与迁移执行分开。
退出
  • 成功:交付物应说明模型、约束、完整性、事务、容量和验证。
  • 部分成功:明确指出缺少的工作负载证据或尚未解决的权衡。

逻辑操作

操作
操作SSL 原语证据
对工作负载分类并建模SELECTSQL、NoSQL、向量、缓存、搜索、混合
读取架构/查询证据READ迁移、ERD、查询模式
比较设计方案COMPARE引擎/模型/索引权衡
推断完整性与容量风险INFER约束、事务、增长假设
验证反模式VALIDATE检查清单和反模式指南
编写架构文档或变更WRITE交付物、迁移、查询/索引变更
报告建议NOTIFY最终数据库建议
工具与仪器
  • 项目数据库架构、迁移、查询工具和迁移命令
  • 文档模板、反模式指南、向量数据库指南和 ISO 控制指南
  • 根据容量或 ERD 输出的需求,可选用电子表格或图表工件
规范工作流路径

使用已配置的代码智能提供方定位文件并检查符号 或内容。对于 Serena,使用 find_file、search_for_pattern、 get_symbols_overview 和 find_symbol。原生搜索仅限于提供方排除项 以及项目搜索策略允许的非代码路径。

只有在确定数据库引擎和迁移工具后,才运行项目的迁移、查询计划或检索质量命令。 对于受影响的触发器、存储过程、函数、视图、数据库作业或 ORM 钩子, 应用 resources/anti-patterns.md §5 中的应用程序所有权审查。 对于现有用法,应提出与新设计同样强烈的改进建议;范围明确的 查询变更不需要无关的全数据库迁移。

资源范围
范围资源目标
CODEBASE架构、迁移、查询、ORM 和检索文件
LOCAL_FS数据库设计工件和结果文档
PROCESS迁移、查询、lint 或验证命令
USER_DATA领域数据定义、保留规则和示例访问模式
前提条件
  • 可以确定目标数据库问题及其范围。
  • 已有架构/工作负载证据,或已说明相关假设。
影响和副作用
  • 可能会创建或更改架构文档、迁移、索引、查询或检索配置。
  • 可能影响数据完整性、性能、恢复能力或合规证据。
  • 未经用户明确授权和验证,不应执行高风险迁移。
护栏

仅当目标项目尚未确立选择时,才应用框架、库、架构和数据模型方面的默认做法。范围限定的编辑不授权迁移技术栈或改动无关基础设施。

  1. 先选模型,再选引擎:工作负载、访问模式、一致性和规模决定数据库的选择。
  2. 对关系型工作负载,默认至少满足 3NF。只有明确说明性能方面的理由时,才可偏离 3NF。
  3. 对分布式/非关系型工作负载,围绕聚合和访问路径建模;记录 BASE 及一致性方面的权衡。
  4. 对关系型事务语义,明确记录 ACID 预期。对于分布式/非关系型方案的权衡,明确记录一致性方面的妥协。
  5. 对完整的架构设计,记录外部、概念和内部模式视图。对于范围限定的索引/查询/模型变更,仅更新受影响的现有视图。
  6. 将完整性视为首要事项:必须明确实体完整性、域完整性、参照完整性和业务规则完整性。
  7. 并发绝不能含糊处理:为每个关键流程定义事务边界、锁定策略和隔离级别。
  8. 遵循现有数据标准;为新建模的数据补充相关的命名、定义、格式和验证规则。
  9. 如果变更改变了现有术语表、决策文档和容量文档的假设,则更新受影响的文档。仅涉及查询的任务不需要新建建模文档。
  10. 主动指出反模式和不安全的捷径,而不是默默照做。
  11. 如果设计削弱了可审计性、最小权限、可追溯性、备份/恢复或数据完整性,则提出更符合 ISO 27001 / 27002 / 22301 的替代方案。
  12. 向量数据库是检索基础设施,而不是事实来源数据库。只在其中存储嵌入向量和轻量元数据;将规范文档保存在其他位置。
  13. 绝不能将向量搜索视为词法搜索的直接替代方案。当精确匹配、合规过滤或可解释性很重要时,默认采用混合检索。
  14. 嵌入向量是类似架构的资产:对模型、维度、分块和预处理进行版本管理,并明确规划重新嵌入迁移。
  15. 检索质量取决于分块、过滤、重排序和可观测性,而不仅仅是向量索引层。
  16. 对在线表进行架构或数据变更时,遵循扩展—收缩(并行变更)模式:增量扩展、双写并批量回填、验证读取切换、延迟收缩。对热表执行 DDL 时,须考虑锁并设置超时;破坏性步骤应在单独部署中发布,并留出观察窗口。
  17. 查询调优从测量和执行计划入手,绝不靠猜测:进行测量、分析执行计划、找出主要成本节点,然后优化并重新测量。
  18. 强烈建议在新系统和现有系统中,均由应用程序负责业务策略、工作流编排和外部副作用。采用 resources/anti-patterns.md §5 中的替代方案、留存证据和数据库职责边界。现有约定不能成为不改进受影响逻辑的理由,但也不授权进行无关重写或自动移除数据库对象。
默认工作流
  1. 探索
    • 确定业务实体、事件、访问模式、数据量、延迟、保留期限和恢复目标
    • 对工作负载进行分类:OLTP、分析、事件处理、缓存、搜索、混合
    • 在明确说明理由的前提下,决定采用关系型还是非关系型
  2. 设计
    • 编写外部/概念/内部模式文档
    • 对 SQL 或 NoSQL 结构、键、索引、约束和生命周期字段进行建模
    • 定义完整性、事务范围、隔离级别和透明度要求
  3. 优化
    • 验证 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 span 约定(N+1、锁等待、连接池)、基数预算

评论

支持 Markdown