簡介
最近,許多組織已經認識到了命名標准在數據管理中的重要性,並開始實施它們。如果實施命名標准,那麼在為數據對象命名時必須使用術語表中定義的詞匯,而且要符合詞匯次序。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 定義命名標准,要在術語表模型中指定為數據對象名稱選擇的詞匯,並使用數據對象標准首選項指定詞匯的模式。
創建術語表模型
術語表模型描述一個組織中為數據對象名稱建立、批准並共享的詞匯。通過使用術語表模型,可以定義詞匯的名稱、縮寫、替換的縮寫、類型(基本單詞或類單詞)、它是否可以作為修飾詞、狀態以及摘要或描述。術語表模型存儲在 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 顯示術語表,其中包含來自 海岸警備隊數據元素命名標准 的類單詞列表、基本單詞示例和修飾詞。