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