4. 实验室主数据建模方法

实验室主数据建模的目标,是把“样品、人员、仪器、试剂、方法、标准物质、检测项目、报告”等核心对象及其关系,从业务语言转化为可被数据库、系统接口和知识推理共同理解的形式化描述。它通常分两步走:先建立概念模型,回答“业务世界里有哪些对象、它们如何关联”;再建立逻辑模型,回答“这些对象在系统中以什么标识、属性、约束和关系落地”。本节围绕三种主流方法展开:实体-关系模型(E-R)、面向对象建模(OOM)与本体建模(Ontology),并说明它们在同一套实验室主数据中的分工与衔接。

一、实体-关系模型:先把“谁和谁有关系”画清楚

E-R 模型最适合做概念层的骨架。它的三要素是实体、属性、联系。以实验室为例,实体可包括:Sample(样品)、Instrument(仪器)、Reagent(试剂)、Method(方法)、TestItem(检测项目)、Person(人员)、StandardMaterial(标准物质)。联系则表达业务规则,例如“样品由方法检测”“仪器执行检测项目”“试剂用于方法”“标准物质校准仪器”。

E-R 建模的关键不是画框,而是确定基数与参与度。例如:一个样品可被多个检测项目检测(1:N),一个检测项目可由多台仪器完成(M:N),一台仪器必须归属于某个实验室(N:1,全参与)。这些约束直接决定后续逻辑模型中的外键、关联表和唯一性规则。若把“样品—检测项目”误设为 1:1,逻辑模型就会丢失复测、分包、多方法比对等真实场景。

概念模型阶段建议只保留业务上稳定的标识属性,如样品编号、仪器资产编号、方法标准号,不要把临时状态、审计字段、界面展示字段全部塞入。E-R 图的价值在于让业务专家和建模人员对“对象边界”达成一致,而不是提前做物理表设计。

二、面向对象建模:把行为、生命周期与封装带进来

E-R 擅长静态结构,但对“状态变化、行为、继承”表达较弱。面向对象建模用类、属性、操作、关联、继承、聚合来补足。例如 Instrument 可抽象为父类,LC-MS、ICP-MS、GC 作为子类继承“校准周期、量程、状态”等共性属性,并各自扩展“离子源类型、检测器类型”等专有属性。这样在逻辑模型中可用继承表或单表+类型判别字段实现,避免为每类仪器重复建表。

对象建模还强调生命周期状态。以样品为例,其状态可定义为:已登记 → 已接收 → 在检 → 已检 → 已审核 → 已归档,异常时进入退回/留样/销毁。状态不是普通属性,而是受约束的状态机:只有“已接收”才能进入“在检”,只有“已检”才能提交审核。把状态机写入逻辑模型,可让后续系统在接口层直接校验,而不是靠人工记忆。

此外,对象建模中的“聚合/组合”能表达强归属关系:检测报告由多个检测结果组合而成,检测结果又依赖样品、方法、仪器。这种整体-部分关系在 E-R 中往往被弱化为普通联系,而在对象模型中可明确生命周期联动:报告作废时,其结果明细应级联失效。

三、本体建模:让主数据具备可推理的语义

当实验室主数据需要跨系统、跨机构交换,或需要支持智能检索、规则推理时,本体建模更合适。本体用类(Class)、属性(Property)、个体(Individual)、公理(Axiom)描述领域知识,常用 OWL/RDF 表达。它比 E-R 多出“约束推理”能力:例如定义 StandardMaterial 必须 hasCertifiedValue 且 hasUncertainty;定义 Calibration 的 calibrates 对象必须是 Instrument。推理机可据此发现“某标准物质缺少不确定度”或“某校准记录指向了非仪器对象”这类语义错误。

本体还支持等价类与子类推理。例如把“用于痕量金属检测、检出限低于 1 μg/L 的方法”定义为 TraceMetalMethod 的等价类,系统即可自动把符合条件的方法归入该类,而无需人工打标签。这对方法库、能力库、标准库的持续治理非常有价值。

但本体不是替代 E-R 和对象模型。工程上更稳妥的做法是:E-R 定概念骨架,对象模型定行为与生命周期,本体定语义与推理。三者通过统一标识(如 URI 或全局编码)对齐,形成“同一对象、多种视图”。

实验室主数据三层建模视图与衔接 概念层:E-R 模型 实体 · 属性 · 联系 · 基数 Sample 样品 Method 方法 Instrument 仪器 TestItem 项目 1:N M:N 1:N 输出:对象边界、基数、参与度 稳定业务标识 逻辑层:面向对象模型 类 · 继承 · 状态机 · 聚合 Instrument LC-MS / ICP-MS 继承 Sample 状态机:登记→接收→在检→已检→审核→归档 输出:表结构、外键、约束、状态迁移 接口校验规则 语义层:本体模型 类 · 属性 · 公理 · 推理 StandardMaterial Calibration calibrates 公理:标准物质必须有证书值与不确定度 输出:语义约束、自动分类、跨系统交换 推理校验 细化 语义化 统一主数据标识(全局编码 / URI) 同一对象在三层视图中保持同一身份:样品编号、仪器资产号、方法标准号、标准物质批号 示例:样品 S-2024-001 的三层落地 E-R:Sample(1) —检测— TestItem(N),Sample(1) —使用— Method(N) OOM:Sample 状态 = 在检;关联 Instrument = ICP-MS-03;结果明细聚合于 Report Ontology:S-2024-001 属于 TraceMetalSample;其 Method 满足 TraceMetalMethod 等价类

四、三种方法如何协同落地

实际项目中,建议按以下顺序推进,而不是三选一:

  1. 用 E-R 做概念模型:与业务方确认实体清单、联系和基数,输出对象边界与稳定标识。此阶段不讨论字段类型和索引。
  2. 用面向对象模型做逻辑模型:把实体细化为类,补充继承、状态机、聚合关系,并映射为关系表或文档结构。例如 Instrument 采用“主表+子类型表”,Sample 状态用枚举字段加迁移校验。
  3. 用本体做语义层:对需要跨系统交换、自动分类、规则推理的对象建立 OWL 类与公理,并与前两层通过统一编码对齐。本体不必覆盖全部主数据,优先覆盖标准物质、方法、能力、检测项目等高价值语义对象。
判断该用哪一层:如果问题是“有哪些对象、谁关联谁”,用 E-R;如果问题是“对象如何变化、如何继承、如何约束行为”,用面向对象;如果问题是“如何让机器理解语义、自动推理和跨域交换”,用本体。三者不是替代关系,而是同一主数据的不同精度视图。

五、建模质量的关键检查点

无论采用哪种方法,实验室主数据建模都应检查以下要点:

  • 标识唯一性:样品编号、仪器资产号、方法标准号、标准物质批号是否全局唯一且稳定,不随业务状态变化而改变。
  • 关系基数正确:样品与检测项目、仪器与方法、试剂与方法之间的 1:N、M:N 是否与真实业务一致,是否支持复测、分包、多方法比对。
  • 状态可迁移:样品、仪器、标准物质的状态机是否有明确入口、出口和禁止迁移,异常状态是否有回退路径。
  • 语义可推理:本体公理是否能发现缺失证书值、错误校准对象、方法能力不匹配等问题。
  • 三层可对齐:同一对象在 E-R、对象模型和本体中是否使用同一标识,避免出现“同物异码、同码异物”。

以某实验室方法库为例:E-R 层定义 Method 与 TestItem 为 M:N;对象层为 Method 增加“版本、生效日期、状态(草案/生效/作废)”和“适用仪器类型”聚合;本体层定义 ValidMethod 等价于“状态为生效且未过期的方法”,并约束 usesReagent 必须指向已批准试剂。这样,当系统查询“当前可用于 ICP-MS 检测铅的生效方法”时,三层信息可联合过滤,既保证结构正确,也保证语义正确。

常见误区:把 E-R 图直接当物理表设计,忽略状态与行为;或把本体做成“大而全”的术语表,却没有公理和推理价值。前者导致逻辑模型僵硬,后者导致语义层沦为装饰。建模时应始终围绕“业务问题能否被回答、约束能否被校验”来判断取舍。

综上,实验室主数据建模不是一次画图,而是从概念到逻辑、从结构到语义的逐层收敛。E-R 保证对象与关系不遗漏,面向对象保证行为与生命周期可管理,本体保证语义与推理可扩展。三者通过统一标识衔接,才能支撑后续的编码体系、数据治理与跨系统集成。