☰
数据需求说明(DRD)编写实战:八段式模板与数据字典规范
2026/10/22 16:37:32 网站建设 项目流程

简介:在软件项目开发中,数据需求说明(DRD)用于界定系统处理的数据对象与采集规则,是需求分析阶段的重要交付物。该模板面向项目经理、需求分析师、系统设计师、开发及测试人员,提供了一套可直接套用的标准文档结构,帮助团队提前约定静态数据、动态输入数据、动态输出数据、内部生成数据以及数据约定,从而降低因数据口径不一致引发的沟通成本和返工风险。资源包体积小巧,仅包含1个doc格式文件,约44KB,便于下载后直接修改使用。模板具体覆盖了引言、标识、系统概述、文档概述、引用文件、数据的逻辑描述、数据的采集等章节,并在数据采集部分细化了要求和范围、输入的承担者、预处理、影响等内容,既能指导新手按规范撰写,也能作为评审检查单使用。目前已有299人学习/下载,适合需要快速产出高完整性DRD文档的团队参考。

1. 数据需求说明是什么:它不是SRS的数据段落,而是数据链路的源头

先说一个反直觉的结论:大多数项目里,数据需求说明(DRD)写不好,不是文档能力问题,而是定位问题。很多人习惯把数据需求塞进软件需求规格说明书的某个章节里,写三五句“系统需要记录订单金额、订单状态”就算交差,等数据开发去建模型时才发现字段单位搞不清、枚举值对不上、派生指标的口径没人说得清。数据需求说明这份文档要解决的,正是这个从业务口径到数据产物的“翻译断层”。

它适合谁?适合那些要建数据仓库、做数据中台、搞报表平台、做系统对接,或者哪怕只是新老系统数据迁移的团队。它单独成文,把业务需要哪些数据、每个数据项怎么定义、从哪来、有哪些约束,在开发动手之前先说清楚。在不少软件项目文档模板序列里,它排在需求类文档的中后段,属于从需求过渡到设计的核心连接件。有了它,数据模型设计、接口开发、数仓建模才谈得上有据可依。

2. 写数据需求说明(DRD)前先想明白的三件事:边界、读者与深度

2.1 DRD在文档体系里的边界:和SRS、数据设计文档各管一段

DRD经常被人拿来和软件需求规格说明书(SRS)、数据库设计说明(DD)搞混。这不奇怪,尤其在文档模板序列里,它正好夹在需求与设计之间,三者层层递进。我见过不少团队把三份文档合并成一份,结果后面数据模型要改,连带着功能文档一起返工,评审时谁都不想翻那份两百页的“合订本”。

边界其实很清楚:SRS描述系统要做什么行为,回答“功能上要支持什么”;DRD描述系统要处理哪些数据,回答“数据上要具备什么”;DD描述这些数据在库里怎么落,回答“表怎么建、索引怎么设”。三者的粒度不一样。SRS里的数据需求往往只能写到一个业务对象的程度,比如“系统应支持记录订单的支付信息”;DRD要更近一步,把支付信息展开成支付流水号、支付渠道、支付金额、支付时间这些数据项,并给出定义和约束;DD才去考虑流水号用不用雪花算法、金额字段用什么类型、索引怎么建。

实际执行中,DRD的编写时机在SRS初稿完成之后、DD动工之前。如果项目是敏捷迭代,DRD可以分模块出,但每个迭代开始前必须把涉及的数据项定好,否则数据开发只能边做边猜。从文档管理角度,DRD应该单独走评审流程,和SRS的评审分开——两拨人看的重点不同,混在一起评审往往两边都没看透。

2.2 DRD给谁看、在什么阶段产出:读者决定写法

一份文档的写法,取决于谁要拿它干活。DRD主要有三个读者群。第一个是数据架构师和数据建模人员,他们要从DRD里提取实体、属性、关系,画出逻辑模型;第二个是接口开发人员,他们要做系统间数据同步或对接,需要知道每个字段的语义、格式和取值;第三个是数据治理和数据测试人员,他们要拿DRD核对数据质量规则,做字段级验证。

因为读者是这些角色,DRD的写法就跟SRS不一样了。SRS可以按功能模块去组织章节,DRD则按数据域或业务主题去组织内容。订单、支付、商品、用户各成一段,数据字典里不要出现“页面右上角那个统计数”这种和界面绑定的描述,应该写“近30天支付成功订单金额合计”,让人不看界面也能理解。

还有一个容易被忽略的点:DRD的产出阶段不是一次性的。我在某公司的项目里见过这种流程——需求阶段先出v0.1,覆盖核心业务实体和关键数据项;设计阶段随着接口文档和报表原型细化到字段级;上线前再补一轮数据量、增长率和留存期。如果项目组指望一周内写出终稿,大概率写出来的是SRS的复读。

提示:判断一份DRD写得对不对路,有个简单办法——拿给一个不了解业务的数据开发看。他能不能不找你追问,就把数据模型画出来?能,就算合格。

3. 数据需求说明(DRD)的模板骨架:八段式结构与数据字典粒度

3.1 八段式标准章节目录:每章写什么、不写什么

很多模板库里叫“数据需求说明(DRD)”的文档,章节结构大同小异,但用起来的体验差别很大。差别不在章标题,而在每章填进去的内容颗粒度。这里整理一套我一直在用的八段式结构,照着填基本不会漏东西。

章节内容要点常见误区
1. 封面与修订记录版本号、编写人、评审人、变更说明只有初版日期,后面改了没记录
2. 引言目的、范围、读者、术语定义复制SRS的引言,范围没收紧到数据
3. 总体描述数据域划分、数据来源系统、数据流向概述画大图但和后面的字典对不上
4. 数据定义数据实体、数据项字典、枚举值、派生规则只有表结构,没有业务定义和来源
5. 数据流说明各业务场景下的数据流转、输入输出把接口设计文档的内容抄进来
6. 数据约束非空、唯一、取值范围、数据量级、时效、留存期只写字段约束,忘了数据量与时效
7. 需求追踪矩阵DRD条目到SRS功能点、DD对象的映射矩阵只有条目号,没有结论
8. 附录外部接口清单、报表指标清单、待确认问题把临时讨论记录堆在里面

这套结构的重心在第四章。很多团队写DRD,前面三章写了半个月,第四章草草收场,这正好搞反了。前面三章是交代背景用的,第四章才是数据开发真正要照着干活的内容。我一般在评审时直接翻到第四章和第七章,前面写得再漂亮,第四章不行就打回重写。

3.2 数据字典的粒度:核心实体字段级、外围实体实体级

DRD写得厚不厚,关键在数据字典部分怎么把握粒度。这里有一个常见误区:以为数据字典必须把所有实体的所有字段全部展开,结果一份文档数百页,评审没人看完,迭代一版就要重写。我的做法是分级管理。

核心业务实体,比如订单、支付流水、用户账号、结算单这类要被多个下游复用的数据,必须展开到字段级,每个字段写清楚名称、业务定义、数据类型、单位、精度、来源、是否必填、默认值、取值范围。外围实体或者一次性报表使用的临时数据,写到实体级就够了,列出属性和关系,不逐字段展开。这样文档厚度能减掉一半以上,评审时注意力集中在真正会被复用的数据上。

数据项的编号和定义方式,直接影响到后续追踪矩阵好不好写。我一般给每个数据项编一个唯一编号,格式类似 D-订单-007,避免在文档里用“第4章第2节那个金额字段”来指代。字段定义里最重要的是业务定义和来源,这两项是DRD和数据库设计文档最本质的区别——数据定义是给人看的,物理字段是给机器用的。

下面是一个字段级的数据项记录示例,我习惯用代码块来呈现,方便后续做自动化检查:

数据项编号:D-订单-007 业务名称:订单实付金额 业务定义:用户在实际支付环节最终支付成功的金额, 包含优惠分摊,不包含未支付订单的金额; 单位:人民币元;精度:小数点后保留2位 数据类型(逻辑):数值型 取值范围:0.00 ~ 99999999.99 是否必填:必填 数据来源:订单服务支付回调接口,字段 pay_amount 派生规则:无(源数据) 关联枚举:无

这个数据项记录的使用方式是,数据开发拿到后直接确定物理字段为 decimal(12,2),接口开发确认对接字段为 pay_amount。如果业务定义里那句“包含优惠分摊”没写清楚,数据开发大概率会把衍生金额和实付金额混在同一个字段里,后面对账报表的口径就要扯皮。字段级定义的价值,就是在开发动手之前把这些歧义消灭掉。

4. 把数据需求说明(DRD)写到能落地:从调研到成稿的四步

4.1 第一步:收集数据需求来源,别只盯着功能需求文档

写DRD最忌闭门造车——拿着一份SRS想当然地列字段。实际项目里,数据需求散落在四面八方,不出去收就会漏。我一般会按下面这个清单去收集,每项都有明确的产出物:

  1. 业务指标定义文档或报表需求清单:这是核心来源,因为报表要什么数据,等于明明白白告诉你要定义哪些数据项。
  2. 存量系统的数据库模型或导出文档:老系统在跑的字段,尤其是主数据和金额类字段,迁移时必须保留原语义。
  3. 外部对接接口文档:上下游系统传过来的报文字段,DRD里要把每个字段的来源标记为“外部系统”,并注明以哪一方的定义为准。
  4. 数据质量问题和口径争议记录:业务人员对某个指标经常扯皮,说明之前的定义有歧义,这些点要重点写清楚。
  5. 合规与安全要求:涉及个人敏感信息的字段,要在DRD里标注数据分级,并说明脱敏处理和保留期限。

收集过程中要带着问题去问业务方:这个指标的口径是怎么算的?含不含税?含不含退款订单?统计时点是下单还是支付成功?这些问题在写SRS时往往不会被问到,但对数据开发来说全是致命的。漏掉一个口径,轻则报表返工,重则对账不平。

4.2 第二步:梳理数据域与数据流,先有地图再有字典

在展开数据字典之前,先把数据地图梳理出来。这里说的画图,不需要啥可视化工具,文字加表格就能把层次讲明白。按业务域划分数据域,比如订单域、支付域、用户域、商品域、财务域,每个数据域列出包含的核心实体,再描述实体之间的流转关系。

我常用的描述方式是下面这种,文字先讲清楚链路,再用表格列出节点输入和输出:

用户下单后,订单数据由交易系统写入订单库;支付完成产生支付流水,由支付系统写入支付库;履约环节消费订单数据和支付结果,生成发货记录;财务对账环节汇总订单金额、支付金额和退款金额,生成结算数据。

环节输入数据输出数据关键字段
用户下单购物车、商品信息订单生成订单号、订单金额、下单时间
支付完成订单信息支付流水支付流水号、支付金额、支付渠道
履约发货订单、支付结果发货记录发货单号、物流单号、发货时间
财务对账订单、支付、退款结算单结算周期、应收金额、实收金额

这个环节很值得多花时间,因为它决定了DRD的范围。很多项目写DRD写到一半发现字段定义和总体描述对不上,原因就是没先做这层梳理。数据流梳理还有一个附加作用:它能直接暴露数据孤岛——比如某个环节的数据没有任何系统在产出,那就要在需求阶段提出来,而不是等联调时才发现。

4.3 第三步:填数据字典和约束,用固定模板减少返工

数据字典的每条记录按照第3.2节那个字段级模板填,不要今天一种写法明天一种写法。固定模板的最大好处,是评审时可以用自动化脚本扫格式一致性,比如检查有没有数据项漏填“派生规则”,有没有金额字段漏填“精度”。

数据约束这一章容易被低估,但它是DRD真正能帮到后续开发的部分。除了字段级的非空和取值范围,还要写清楚这三条非功能性数据约束:

  1. 数据量级与增长率:比如“订单数据上线初期日均新增10万条,年增长预期约为20%,保留3年”。没有这个数据,数据库设计和分库分表决策全凭感觉。
  2. 数据时效:比如“实时订单数据要求T+0实时同步,数据仓库ODS层延迟不超过15分钟”。这决定了数据同步方案用实时还是批处理。
  3. 数据留存与销毁:比如“支付流水按监管要求保留5年,日志类数据保留90天后归档”。这对接下来的存储容量评估和合规审计至关重要。

我见过一个项目,DRD里完全没写留存期,结果数据团队按全量永久存储去做容量报价,预算翻了三倍。后来补上留存规则,才把容量和成本拉回合理区间。这属于数据需求没写清楚的典型代价。

4.4 第四步:做需求追踪矩阵,让DRD和SRS、DD保持闭环

追踪矩阵是DRD里最容易被跳过的章节,但对维护工作最有价值。它要做的事情很简单:每个DRD数据项,能从哪个SRS功能号追踪过来,未来会映射到DD里的哪个表哪个字段。它的意义在于,需求一变就能评估影响范围。

下面是一个简化示例:

DRD数据项编号DRD数据项名称来源SRS功能号映射DD对象(待设计)变更说明
D-订单-007订单实付金额SRS-3.2.1待定无
D-支付-002支付流水号SRS-3.2.4待定无

矩阵不需要写得多花哨,关键是每条DRD记录都有来源、有去向。评审时把矩阵过一遍,哪条数据项没有对应的SRS来源,大概率是凭空造出来的需求;哪条SRS功能点没有任何DRD记录,大概率是需求漏了数据支撑。这两种情况,在矩阵里一眼就能看出来。

5. 数据需求说明(DRD)的常见坑:写错方向,评审一改就返工

5.1 坑1:把DRD当成SRS的“数据字段段落”

现象:文档大量篇幅在复述SRS的功能描述,数据字典稀稀拉拉几页,数据开发拿到后还得反过来问业务要字段口径。

原因:团队把DRD当作SRS的附属章节来写,觉得数据需求就是功能需求的一部分,没意识到DRD的产出对象是数据模型、接口和数仓,而不是功能行为。

解决:强制按数据域组织章节,数据定义里每条记录都按“编号、业务定义、来源、类型、约束”的模板填。评审时如果发现某页超过一半内容和SRS重复,直接判定不合格。我一般会把SRS和DRD分开评审,请不同的人把关,避免内容串味。

5.2 坑2:把物理表结构直接抄进DRD

现象:数据字典里出现 order_id、create_time 这类物理字段名,字段类型写成 varchar(32)、bigint,把DRD写成了DD。

原因:写作者图省事,直接复制了旧库的表结构或接口报文字段过来,没有做“业务语言”到“数据定义”的转换。

解决:DRD里写的是业务名称和逻辑类型,比如“订单号”“字符型,长度32位”,物理字段名和具体数据库类型留给DD去定义。物理字段可以出现在“数据来源”里作为参考,但不能作为数据项本身。如果发现字典条目主要靠物理字段名撑着,就得返工重写。

5.3 坑3:字段级字典写太细,迭代到一半就作废

现象:文档膨胀到几百页,所有实体所有字段全展开,小到一个联调日志字段都写了两行定义,评审没人看完,改需求时文档变更通告发得比需求都勤。

原因:没有对实体做分级,什么都想写清楚,结果核心数据淹没在非核心数据里。

解决:执行分级策略——核心实体字段级,外围实体实体级。写之前先把实体清单按复用程度排个序,靠前的核心实体展开到字段级;其余实体列属性和关系即可。这样还有一个回报:核心字段的定义质量会明显提高,因为精力聚焦了。

5.4 坑4:漏了衍生数据与派生规则

现象:报表里的“订单实付金额”和数据仓库里“实付金额”指标对不上,财务对账差了几分钱,两边数据开发各自坚持自己是对的。

原因:DRD只定义了源数据字段,没有定义衍生指标的计算口径。实付金额等于订单金额减优惠,还是减优惠再减退款,没人写清楚。

解决:在每个衍生数据项的模板里,专门加“派生规则”属性,写明计算方式、依赖的源数据项编号、统计范围。比如“订单实付金额 = 订单应付金额 - 优惠分摊金额,统计范围为支付成功状态订单”。派生规则写清楚之后,数据测试就可以拿它对账,而不是等对不上账再开评审会讨论口径。

5.5 坑5:只写字段约束,不写数据量、时效与留存

现象:数据字典的约束写得规规矩矩,但整个DRD没有一句话提到每天新增多少数据、保留多久、同步延迟上限。结果数据库设计靠拍脑袋,容量规划翻车,合规审计时又不知道数据该留多久。

原因:写作者把DRD的“约束”理解为字段级约束,遗漏了非功能性的数据需求。

解决:在“数据约束”章节里固定加入“数据量级与增长率”“数据时效”“数据留存与销毁”三个小节,每项对应一个表格。写不全没关系,但要留出位置并标记为“待业务确认”,评审时这一块会被自然推进。这个坑补上之后,后续数据库容量评估和同步方案选型就不用到处问人再猜了。

6. 数据需求说明(DRD)的验证方法:评审清单与自动检查

评审DRD时,我一般不用逐页读文档的方式,那样效率低且容易漏。更靠谱的做法是拿一张固定检查清单,逐项核对,再配合一段简单的自动检查脚本扫数据字典的格式一致性。

6.1 六问核查法:评审时必问的问题

下面六个问题,是评审DRD时最值得问的,基本能覆盖大部分典型缺陷:

检查项通过标准常见失败表现
数据项是否重复定义同一业务概念在全文只有一条记录不同章节各写了一套“订单金额”
每个数据项是否可追溯有DRD编号和SRS来源映射矩阵里大量条目来源为空
单位与精度是否统一金额类字段统一指定单位与精度有的写元,有的写分
派生规则是否明确衍生数据项写清计算口径只说“系统自动计算”
数据量与时效是否覆盖核心实体有量级和时效描述只有字段约束,没有容量信息
分级策略是否执行核心实体到字段级,外围到实体级全文所有实体全部展开

评审时每项逐一过,不通过的当场标注“待修订”,不要现场争论。把修订项带回去改完再复审。

6.2 用SQL检查数据字典的一致性

如果模板是固定的,数据字典可以导出成结构化文件,用脚本扫几类能自动发现的问题。下面以导出的 CSV 为例,检查三条规则:有没有重复的数据项编号、有没有漏填派生规则的衍生数据、金额字段的单位有没有混用。

-- 1) 找出重复的数据项编号 SELECT 数据项编号, COUNT(*) AS 记录数 FROM 数据字典 GROUP BY 数据项编号 HAVING COUNT(*) > 1; -- 2) 找出派生规则为空但派生标记为“是”的数据项 SELECT 数据项编号, 业务名称 FROM 数据字典 WHERE 是否派生 = '是' AND (派生规则 IS NULL OR 派生规则 = ''); -- 3) 列出所有金额数据类型的数据项及其单位,供人工复核 SELECT 数据项编号, 业务名称, 单位 FROM 数据字典 WHERE 数据类型 = '金额' ORDER BY 业务名称, 单位;

这三条SQL分别解决编号唯一性、派生规则完备性、单位一致性三类问题。前两条是硬校验,查出问题直接改;第三条是全量列出金额字段,评审时一眼就能看出有没有元、分混用。实际项目里把数据字典导出成表结构后,这几句就能当检查规则跑。成本很低,收益却是实打实的——这些错误靠人眼评审很难发现,脚本一次就能定位。

6.3 让DRD成为活文档:变更是常态,版本留痕是关键

很多团队把DRD当成一次性交付物,评审完就归档,后面数据模型改了文档也不更新,半年后没人敢碰它。我做事的习惯是,把DRD放进和代码同级的变更管理流程,每次需求变更都要带上对应DRD条目的修订记录;版本号从v0.1开始,每次评审通过才升到下一个正式版本,草稿阶段用v0.x。

这里有一个吃亏换来的教训:有一回某项目上线后,数据开发发现订单金额字段精度不够,直接在代码里改了存储类型,DRD没有同步,后来新来的同事看文档以为是两个口径,排查了大半天。从那以后我给自己定了个规矩——数据字典里的物理映射变化,必须回头更新DRD的“数据来源”备注和追踪矩阵,即使一行也要改。DRD只有跟着版本活起来,才不会变成发布即过期的摆设。

如果你正卡在要不要给团队补这份文档的决策上,我的建议很直接:先挑一个核心业务域,按八段式结构写一份DRD,不需要追求一次写全,把数据字典和约束章节先立起来,拿到评审会上过一遍。你会发现,数据口径的争议、字段定义的歧义,在这个过程里被集中引爆,但这正是它该发生的时机——在数据模型动工之前,而不是在报表对不上账之后。希望帮到你。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询