資料規範之資料元

接著上一篇程式碼表,我們再來聊一聊資料標準中的資料元。從資料標準開始,公眾號內容日益枯燥了。沒辦法,內容就是越深入越難講的生動有趣,尤其標準之類的更是令人頭痛,但我還是要費九牛二虎之力把這些內容聊一聊。話又說回來,這公眾號就叫聊聊資料那些事,不聊資料不跑題了嗎。

資料規範之資料元

先上百科,資料元( Data Element),也稱為資料元素,是用一組屬性描述其定義、標識、表示和允許值的資料單元,在一定語境下,通常用於構建一個語義正確、獨立且無歧義的特定概念語義的資訊單元。

概念果然很枯燥,還是舉個例子比較靠譜。比如工作中我們接觸的資料中有嫌疑人姓名、申請人姓名、登記人姓名等等資料項,可以看出上面列舉的三個資料項實質上都是姓名,只不過是表現形式不一樣。我們就把這三個資料項的骨幹核心即姓名拿出來,那“姓名”就是我們所說的資料元。大家可以理解資料元就是我們客觀世界歸納總結出來的一個實體、一個物件。

資料元是組成實體資料的最小單元,或稱原子資料。為什麼叫原子資料呢,因為其不可再分,比如姓名已經不能繼續往下拆解。你不能說還可以繼續拆成姓和名,這樣的話其實資料的意義已經發生了變化。

大家可以想象,例如姓名、性別、公民身份號碼等等的資料項都可以定義他們的資料元。理論上我們是可以把形形色色、不同系統裡的各種資料項進行歸納,抽離出一套資料元集,這樣的話任何的資料項就都能找到它所對應的資料元了,也就是它的原子資料。

在我們行業內關於姓名資料元的標準如下圖所示:

資料規範之資料元

大家可以看到標準裡定義了姓名這個資料元的定義、標識、表示和值域。除了這些屬性規定之後還有一些管理類的屬性,如提交機構、批准日期等等。這些屬性的確定是要經過詳細研究的,比如姓名資料元的長度,標準裡規定的是c。。50,也就是字元在50個之內,這個長度標準肯定是透過實際情況論證過的。再比如性別程式碼這個資料元,它的值域是:0未知的性別,1男性,2女性,5女性改(變)為男性,6男性改(變)為女性,9 未說明的性別。這裡採用的就是我們上一篇文章裡講的程式碼表標準。你看程式碼標準和資料元標準在這裡就結合到了一起。這樣的話我們在進行系統設計和資料開發時,比如有關姓名的資料項我們就可以設定字元長度為50,有關性別的資料項我們就可以套用性別程式碼標準了。

但是我們在日常資料開發中,一類資料中可能出現好多類似的資料項,如同一條資料中可能既有嫌疑人姓名、又有辦案人姓名。當然在這裡他們所對應的都是“姓名”這個資料元,但只有資料元還是不夠的,我們還需要一些特徵來修飾資料元,於是又產生了“限定詞”這個概念。“限定詞”好理解,像嫌疑人姓名中的嫌疑人、辦案人姓名中的辦案人就是限定詞。我們可以得出下面這個公式:

限定詞+資料元=資料項

限定詞也有相關的標準進行規範,而且行業也給出了不少的限定詞。這樣的話我們在進行資料開發時,尤其是資料庫設計時就可以根據資料元和限定詞來設計具體的表字段了。比如我們設計戶籍管理系統時需要一個監護人身份號碼的欄位,那麼我們首先明確這個欄位對應的是公民身份號碼這個資料元,然後在從行業提供的限定詞庫中尋找監護人這個限定詞,然後就組成了物理表中監護人公民身份號碼這個資料項。

可以說限定詞加資料元可以解決我們絕大多數資料項定義問題,但還是有其他特殊情況。一個是組合資料元,也就是由多個數據元組合形成的資料元,如“日期時間”這個資料元,它就是由“日期”和“時間”這兩個資料元組成,可以看出這種方式和限定詞加資料元的方式不同,因為具體的資料內容就是由兩部分構成。

還有一種是派生資料元,也就是一個數據元是由另外一個數據元派生出來的。如果讀者學過面向物件程式設計就可以更好地理解派生關係,面向物件程式設計的主要思想之一就是繼承和派生,即一個新的類繼承了基類的功能並派生出了新的功能。還是舉個例子吧,比如我們有“顏色”資料元,但我們現在想要“眼睛顏色”這麼一個資訊,那麼“眼睛顏色”到底算什麼?你可能會說“眼睛顏色”就是限定詞“眼睛”+資料元“顏色”啊。但其實對業務深究起來,“眼睛顏色”和普通的“顏色”還是差很多的,它們的取值很不一樣,“眼睛顏色”的取值只是“顏色”取值的很小的一個子集。這樣為了業務需要,我們就從“顏色”這個資料元派生出來“眼睛顏色”這個資料元,“顏色”資料元的很多屬性“眼睛顏色”也就繼承了下來。當然派生與限定真的不好分,根據我的理解,只要是兩個資料項的值域有所不同,那麼就得考慮是派生關係而不是限定關係了。

資料規範之資料元

說了這麼多,那資料元有什麼用呢?

資料規範之資料元

首先還是規範表示,尤其是在計算機系統內。比如資料庫設計,原來各系統中欄位設計得五花八門,就拿“姓名”來說,有的表裡叫“name”,有的叫“xingming”,還有的直接用序號代替,難以理解和整合。而現在我們有了資料元標準,我們統一的把資料庫中的姓名欄位命名為“XM”,並且按照姓名資料元的一些規定對欄位進行設定,如字長。顯而易見,這樣規範之後對於資料的儲存、交換和應用都會帶來極大的便利。

其次是可以進行資料標識和提取。我們可以把同一資料項或者同一資料元的資料標識出來,有必要的話也可以提取。還是舉一個例子,我們在業務工作中可能需要查詢手機號碼這類資訊,但手機號碼可能沒有統一的資料來源來提供。而我們的各類資料中可能都散佈著手機號碼資訊,如戶籍資訊中有監護人手機號碼,駕駛人資訊中有登記人手機號碼,信訪資訊中有信訪人手機號碼等等。如果這些資料都是按照資料元標準進行建設的,那麼這些資料統一的都會有“手機號碼”這個資料元的標識。我們把所有共享資料中標識為“手機號碼”的資料項整合起來。如果有必要,我們可以把所有的手機號碼資料提取出來,形成整合的手機號碼庫。如下圖所示:

資料規範之資料元

還是跟上一講一樣,資料元標準的落地執行也不能從資料整合部門開始,還是要從資料前端開始。再把上一篇的最後一段搬過來:

所以在我看來,整個行業的資訊化工作需要通盤考慮,尤其是標準規範方面,要做到全行業的統一。標準規範要貫穿資料的整個生命週期,從資料採集到資料整合再到資料應用。

(結尾依然很突兀)

資料規範之資料元