最近,许多组织已经认识到了命名标准在数据管理中的重要性,并开始实施它们。如果实施命名标准,那么在为数据对象命名时必须使用术语表中定义的词汇,而且要符合词汇次序。RDA 帮助用户定义术语表和数据对象命名标准,使创建符合命名标准的数据对象名称更加容易。它有助于将逻辑模型对象名称转换为物理名称,并允许检验数据对象,确保它们符合命名标准。
许多组织通过实施命名标准提供一个数据环境,这个环境可以促进内部和外部相关人员的交流和决策。制订数据对象命名标准的好处包括:
- 促进对数据的统一理解
- 促进跨组织边界的数据共享
- 通过合并同义和重叠的数据元素来减少数据冗余
数据对象命名标准(或者说约定)描述应该如何构成数据对象名称。根据 International Standard. ISO/IEC 11179-5 的描述,命名标准可以涵盖许多方面:
- 命名约定的范围;例如,公认的业界名称
- 设立名称的机构
- 管理名称中使用的词汇来源和内容的语义规则;例如,来源于数据模型的词汇和教条中常用的词汇
- 管理所需的词汇次序的语法规则
- 管理受控词汇列表、名称长度、字符集和语言的词汇规则
- 指定名称是否惟一的规则
有些方面在不同的组织中存在很大的差异。本文主要关注命名标准的语义和语法部分,并假设组织中已有定义良好的词汇列表。
在为数据对象命名时,有两个重要方面:数据对象名称的内容和格式。
- 内容或语义规则涉及为对象名称选择的词汇的基本含义,确保对象名称能够表达出正确的含义。有三类词汇组成了数据对象名称的内容:基本单词(prime word)、类单词(class word)和修饰词(modifier),修饰词也称为限定词(qualifier),详细描述参见 Data element naming standard。
基本单词:
- 表示收集的数据的相关业务概念。
- 描述数据的主题领域。
- 是一个名词或名词词组,描述名称的主题和重点。
- 描述数据元素在信息模型的逻辑上下文中的位置。
示例:Loan、customer、employee、property
类单词:
- 标识数据的类别或种类。
- 描述数据名称代表的数据的类型。
- 描述与一个数据元素相关联的数据的主要类别。
示例:Date、amount、rate、quantity、code、indicator、name、description、comment
限定词:
- 对基本单词和类单词进行进一步限定或区分。
- 确保数据对象名称的清晰性和惟一性。
- 对类单词和基本单词进行修饰。
- 对类单词和基本单词的含义进行限制。
示例:Last、first、next、previous、beginning
- 格式或语法规则指定数据对象名称的结构。它定义模式 —— 名称中各个部分的数量和次序。例如,一个命名标准可能要求数据对象名称采用以下模式:
{MOD}? {PW} {MOD}? {CW} {MOD}?
其中分隔符是空格,名称最多包含五个词,最少两个词,词汇的次序如下:
- 一个修饰词(MOD),可选;
- 一个基本单词(PW),必需;
- 一个修饰词(MOD),可选;
- 一个类单词(CW),必需;
- 一个修饰词(MOD),可选。
那么,有效的数据对象名称是:
- EMPLOYEE NAME(PW CW)
- EMPLOYEE LAST NAME(PW MOD CW)
- PERMENENT EMPLOYEE LAST NAME(MOD PW MOD CW)
业务名称是一个类似英语的有意义的名称,用来描述数据对象。业务名称用在概念性或逻辑数据模型中。访问或技术名称描述物理数据库中的数据对象。因为数据库管理系统往往对对象名称有特定的限制,包括字符和字符长度,所以访问名称常常是业务名称的缩写,并使用不同的分隔符。例如,逻辑模型中的 EMPLOYEE LAST NAME 对象在物理模型中转换为 EMPL_LST_NM。
如果实施命名标准,那么在为数据对象命名时必须使用术语表中定义的词汇,而且要符合词汇次序。RDA 帮助用户定义数据对象命名标准。为了使用 RDA 定义命名标准,要在术语表模型中指定为数据对象名称选择的词汇,并使用数据对象标准首选项指定词汇的模式。
术语表模型描述一个组织中为数据对象名称建立、批准并共享的词汇。通过使用术语表模型,可以定义词汇的名称、缩写、替换的缩写、类型(基本单词或类单词)、它是否可以作为修饰词、状态以及摘要或描述。术语表模型存储在 RDA 数据设计项目中,可以在多个数据设计项目之间共享术语表模型。
创建术语表模型的具体方法如下:
- 从主菜单中选择 File > New > Glossary Model。此时将打开 New Glossary Model 向导,如 图 1 所示。
- 在向导页面上,指定目标文件夹和文件名。可以使用空模板创建术语表模型,也可使用填充了一些词汇的 Enterprise 模板。可以选择将术语表模型添加到项目属性中,作为项目的命名标准。
- 点击 Finish。
图 1. New glossary model 向导
术语表模型显示在 Data Project Explorer 中您指定的目标文件夹下面。如果选择了将模型添加到项目属性中的选项,那么模型文件也会显示在项目 Properties 视图中的 Naming Standard 页面上。
在创建术语表之后,可以使用编辑器添加、删除或修改术语表模型定义,如 图 2 所示。点击 New 添加一个新行,然后输入名称、缩写、替换的缩写和摘要。选择一个类型和状态,并指定它是否是修饰词。可以点击一行中的任何列或者使用 Properties 视图来编辑定义。如果您的组织已经建立了术语表,那么可以从另一个来源复制和粘贴定义,比如 Microsoft® Word 或 Microsoft Excel。
图 2. 用来添加、删除或编辑词汇的术语表模型编辑器

命名标准的第二部分定义名称的模式或结构。可以使用数据命名标准首选项指定命名模式。这些首选项应用于您的工作空间中的所有数据模型。
为了给命名标准设置首选项:
- 在主菜单中选择 Window > Preferences。
- 点击 Data > Naming Standard。
- 在 Logical 页面上(如 图 3 所示),设置实体和属性对象名称的模式。可以指定基本单词、类单词和修饰词是否是可选的,以及这些元素出现的次序。还可以为这些逻辑对象指定有效的分隔字符。在默认情况下,逻辑对象的分隔符是空格。在 RDA V7.0 中,如果命名标准要求名称具有标题大小写格式(比如 EmployeeLastName),那么可以选择 “Title Case” 作为分隔符。
- 在 Physical-Table/Column 页面上,为物理模型中的表和列对象名称设置模式。可以指定基本单词、类单词和修饰词是必需的还是可选的,以及这些元素出现的次序。还可以为这些物理对象指定有效的分隔字符。在默认情况下,分隔符是下划线字符。
- 在 Physical-Other 页面上(如 图 4 所示),通过添加或删除变量和字符串,为除了表和列之外的物理对象设置模式;例如,主键、外键、检查约束、惟一约束、索引和触发器。这个页面中定义的模式使用变量,比如表名和列名,而不引用词汇。
- 在 Glossary 页面上,指定默认的术语表模型。这里指定的术语表模型应用于 Database Explorer 中显示的数据库对象。
图 3. 逻辑对象的命名标准首选项

图 4. 除了表和列之外的物理对象的命名标准首选项
现在,已经成功地创建了命名标准。在创建了命名标准之后,如何确保数据对象符合标准呢?RDA 命名标准依从规则就是为这个目的设计的。
RDA 的命名标准依从规则会发现违背命名标准的情况。以数据命名标准首选项和术语表模型文件的组合为基础来执行这项检查。通过以下操作调用分析模型规则:
在 Data Project Explorer 中选择:
- 逻辑模型中的包
- 物理模型中的数据库,或者
- 物理模型中的模式
在 Database Explorer 中选择:
- 数据库,或
- 模式
分析模型对话框提示用户选择要使用的规则,如 图 5 所示。当选择命名标准依从规则时,作为项目命名标准添加到项目属性中的术语表模型会显示在向导的下一个页面上。这时可以添加或者删除术语表模型,而且这个页面会自动地与项目的命名标准属性页面保持同步。当点击 Finish 时,RDA 遍历您选择的所有对象,检查它们的名称是否使用了命名标准中定义的词汇和模式。例如,如果定义了下面的命名模式:
{PW} {MOD} {CW}
而且,employee、last 和 name 是术语表模型中定义的基本单词、修饰词和类单词,那么 EMPLOYEE LAST NAME 这个对象名称就是有效的。
图 5. 分析模型对话框提示用户选择要使用的规则
如果发现任何违背规则的情况,就会显示在 Problems 视图中,如 图 6 所示。
图 6. 在 Problems 视图中将违背命名标准的情况显示为警告

下面是一些违背命名标准的示例。
- 不完整的名称:
模式是: {mod}? {PW} {MOD}? {MOD}? {CW} {MOD}?
对象名称是: CIVILIAN EMPLOYEE(MOD PW)
因为这个模式要求有一个类单词,但是 “CIVILIAN EMPLOYEE” 不包含类单词,所以 Problems 视图中显示一个警告,其描述如下:
Entity CIVILIAN EMPLOYEE is not compliant with naming standards -- Missing required {class word} at the end. The expected naming pattern is {modifier}optional {prime word} {modifier}optional {modifier}optional {class word} {modifier}optional.
- 具有无效单词的名称:
模式是: {MOD}? {PW} {MOD}? {MOD}? {CW} {MOD}?
对象名称是: CIVILIAN EMPLOYEE ADDRESS(MOD PW 无效单词)
因为这个模式要求有一个类单词,但是 “ADDRESS” 不是术语表模型中定义的类单词,所以 Problems 视图中显示一个警告,其描述如下:
Attribute CIVILIAN EMPLOYEE ADDRESS is not compliant with naming standards -- A class word is required and ADDRESS is not a valid class word. The expected naming pattern is {modifier}optional {prime word} {modifier}optional {modifier}optional {class word} {modifier}optional.
将 “ADDRESS” 作为类单词添加进术语表模型中之后,就不会为 CIVILIAN EMPLOYEE ADDRESS 显示警告了。
- 具有多余字符串的名称:
模式是: {MOD}? {PW} {MOD}? {MOD}? {CW} {MOD}?
对象名称是: CIVILIAN EMPL REQUESTED DESC TEXT FULL VERIFIED(MOD PW MOD MOD CW MOD MOD)
这个模式允许在一个必需的类单词后面出现一个修饰词,但是这个名称的末尾有两个修饰词。所以 Problems 视图中显示一个警告,其描述如下:
Attribute CIVILIAN EMPL REQUESTED DESC TEXT LAST VERIFIED is not compliant with naming standards -- An extra string VERIFIED is found at the end. The expected naming pattern is {modifier}optional {prime word} {modifier}optional {modifier}optional {class word} {modifier}optional.
对于大型组织,他们的术语表模型很可能包含数千个词汇。在为数据对象命名时,在数千个词汇中进行选择会很困难。RDA V7.0 中添加的命名内容助理帮助用户完成这个任务。
作为命名标准的重要部分之一,为不同的数据对象定义命名模式。这是通过 RDA 的数据命名标准首选项完成的。当用户在 Properties 视图中编辑名称属性时,内容助理提示会显示这些信息。例如,在为物理模型中的一个表对象设置名称时,可以将鼠标移动到内容助理提示上,命名模式就会显示出来,如 图 7 所示。在这个示例中,分隔符是下划线,而且词汇应该符合以下次序:
- 一个修饰词,可选;
- 一个基本单词,必需;
- 一个修饰词,可选;
- 一个修饰词,可选;
- 一个类单词,必需;
- 一个修饰词,可选。
图 7. 内容助理提示命名模式
内容助理提示可以为数据对象显示命名标准,这些信息是作为数据命名标准首选项和术语表模型文件的组合定义的。
了解了对象命名所要求的模式之后,需要从术语表模型中选择词汇来匹配这个模式。可以通过使用 Ctrl+Space 键或输入分隔符显示一个下拉列表,其中列出可用的词汇、缩写和描述,如 图 8 所示。
图 8. 内容助理显示词汇及其属性
随着用户输入字母,这个下拉列表会缩短,如 图 9 所示。
图 9. 当用户输入字母时,内容助理词汇列表会缩短

当从列表中选择一个单词时,这个单词就被添加进名称中。
逻辑数据模型定义实体以及实体之间的关系,而不考虑实现平台。另一方面,物理数据模型是数据库特定的模型,它代表关系数据对象,例如表、列、主键、外键以及它们的关系。按照常见的自上而下设计方式,首先设计一个逻辑模型,将它转换为物理模型,使用物理数据模型生成数据定义语言(DDL)语句,最后将这些语句部署到数据库服务器上。因为大多数数据库对数据库对象名称的字符和字符长度有要求,所以在为物理模型中的数据对象命名时,常常使用缩写。例如,逻辑数据模型中的 EMPLOYEE SOCIAL-SECURITY-NUMBER 对象转换为物理模型中的 EMPL_SSN,其中的 EMPL 和 SSN 是术语表模型中定义的 EMPLOYEE 和 SOCIAL-SECURITY-NUMBER 的缩写。
在使用 RDA 将逻辑数据模型转换为物理数据模型时,实体和属性名称根据以下规则被转换为表和列名称:
- 逻辑对象名称中的逻辑分隔符在对应的物理对象名称中替换为物理分隔符。
- 如果一个实体定义了缩写属性,那么对应的表根据缩写属性命名。
- 如果实体没有定义缩写属性,那么搜索为项目指定的术语表模型,寻找匹配的词汇及其缩写,并在转换后的表名称中使用。如果没有找到匹配的词汇,或者没有为项目指定术语表模型,就使用实体名称。
- 应用相似的命名规则将逻辑属性转换为物理列,只是首先要检查属性是否定义了域属性,如果找到了域属性,就根据它的名称为对应的列命名。
例如,逻辑模型中的 MESSAGE ORIGINATOR IDENTIFIER 属性转换为物理模型中的 MSG_ORITR_ID 列,其中的 MSG、ORITR 和 ID 是术语表模型中定义的 MESSAGE、ORIGINATOR 和 IDENTIFIER 的缩写,而且空格替换成了下划线。
在本节中,以 海岸警备队数据元素命名标准(Coast Guard Data Element Naming Standards) 为例,演示如何使用 RDA 定义和实施命名标准。海岸警备队需要跨组织和功能边界共享数据。跨功能的系统是一种信息系统,它支持与几个程序或功能性部分的活动相关的组织性过程,而不只是支持单一程序的活动。海岸警备队开发并实施了数据元素命名标准来满足开发这些跨功能系统期间的需求。
这个命名标准需要一个正式的类单词列表,这个列表由司令官开发、维护和集中控制。因为所需的基本单词数量很可能达到数百个,他们需要开发一个初步的基本单词列表,作为跨组织协作和使用的受限术语表。这个列表可以通过考察或调整现有数据系统中定义的数据元素名称开发出来。海岸警备队数据元素命名标准 中列出了修饰词或限定词示例。可以使用文本编辑器进行一些格式化,然后进行复制和粘贴,将这些词汇存储在 RDA 术语表模型中。图 10 显示术语表,其中包含来自 海岸警备队数据元素命名标准 的类单词列表、基本单词示例和修饰词。
图 10. 海岸警备队术语表模型
另外,RDA 支持版本控制和配置管理。可以使用 Compare With 工具对术语表模型和版本进行比较。
海岸警备队命名标准包含以下语法规则:
- 每个数据元素名称应该有一个取自预定义类单词列表的类单词。经过司令官批准之后,类单词可以添加到标准化列表中。
- 每个数据元素名称应该有一个取自预定义基本单词列表的基本单词。基本单词必须是数据元素名称中的第一个或第二个单词。经过司令官批准之后,基本单词可以添加到标准化列表中。
- 每个数据元素名称应该包含数量足够的修饰词和限定词,以便充分描述它(每个基本单词最多有四个修饰词,每个类单词最多有一个修饰词和两个限定词)。
- 数据元素名称中单词的次序是:一个可选的修饰词 + 基本单词 + (1 到 4 个)可选的修饰词 + 类单词 + (1 或 2 个)可选的限定词。在数据元素名称中,基本单词必须出现在类单词前面。数据元素名称中最小的单词数量是 2 个(基本单词 + 类单词),最大单词数量是 9 个。
这些规则保存在 RDA 数据命名标准首选项中,如 图 11 所示。
图 11. 海岸警备队命名标准首选项

定义了命名标准之后,可以按照 检验命名标准的依从性 一节中的描述,对任何逻辑或物理模型调用命名标准依从规则。对于不符合命名标准的数据对象名称,会显示错误消息;例如:
- 缺少类单词的名称
- 缺少基本单词的名称
- 基本单词没有出现在类单词前面的名称
- 词汇数量不足 2 个的名称
- 词汇数量多于 9 个的名称
海岸警备队数据命名标准 中描述了这些限制。
在本文中,我们学习了如何使用 RDA:
- 通过术语表模型和命名标准首选项,创建命名标准
- 通过命名内容助理,创建符合命名标准的数据对象名称
- 使用术语表模型中定义的缩写,将逻辑实体和属性名称转换为物理表和列名称
- 使用命名标准依从规则实施命名标准
学习
- 您可以参阅本文在 developerWorks 全球站点上的 英文原文 。
- Rational Data Architect 页面:了解关于 RDA 的更多信息。
- International Standard ISO/IEC 11179-5:阅读 “Information technology — Metadata registries (MDR) — Part 5: Naming and identification principles”。
- “Data element naming standard”(作者 Jeffrey K. Tyzzer):了解关于数据元素命名标准的更多信息。
- “United States Coast Guard Data Naming Standards Guidebook”:了解关于美国海岸警备队数据命名标准的更多信息。
-
developerWorks Information Management 专区:了解关于 DB2 的更多信息。在这里可以找到技术文档、how-to 信息、培训、下载、产品信息等等。
-
随时关注 developerWorks 技术活动和网络广播。
获得产品和技术
- 下载 Rational Data Architect V7.0 的免费试用版本。
-
使用 IBM 试用软件 构建您的下一个开发项目,这些软件可以从 developerWorks 直接下载。
讨论
-
通过参与 developerWorks blog 加入 developerWorks 社区。