【原 】 淺析數(shù)據(jù)模型和數(shù)據(jù)建?!居袌D易懂】
通過使用數(shù)據(jù)模型,開發(fā)人員、數(shù)據(jù)架構師和業(yè)務分析師等各種利益相關者可以在構建數(shù)據(jù)庫和倉庫之前就他們將捕獲的數(shù)據(jù)以及他們希望如何使用這些數(shù)據(jù)達成一致。 數(shù)據(jù)模型指定要捕獲哪些信息、如何存儲它以及它如何與業(yè)務的各個組件相關聯(lián)。數(shù)據(jù)建模的最終目標是為整個組織建立清晰的數(shù)據(jù)標準。例如,電子商務網(wǎng)站的模型可能會指定將捕獲的客戶數(shù)據(jù)。它將定義如何標記該數(shù)據(jù)及其與產(chǎn)品信息和銷售流程的關系。 就像房子的藍圖一樣,當事情變得復雜時,數(shù)據(jù)模型在開始建造之前定義了要建造什么以及如何建造。這種方法可以防止數(shù)據(jù)庫設計和開發(fā)錯誤、捕獲不必要的數(shù)據(jù)以及在多個位置復制數(shù)據(jù)。 數(shù)據(jù)模型分為三類:概念模型、邏輯模型和物理模型。它們幫助利益相關者圍繞數(shù)據(jù)項目的原因、方式和內容保持一致。每種類型的模型在數(shù)據(jù)建模過程中服務于不同的目的和受眾。 概念數(shù)據(jù)模型以可視化方式管理正在建模的業(yè)務流程的概念和規(guī)則,而無需深入了解技術細節(jié)??梢允褂么丝梢暬J絹硎箻I(yè)務利益相關者、系統(tǒng)架構師和開發(fā)人員在項目和業(yè)務需求方面保持一致:數(shù)據(jù)系統(tǒng)將包含哪些信息、元素應如何相互關聯(lián)以及它們的依賴關系。 通常,概念模型表示系統(tǒng)內容、組織和相關業(yè)務規(guī)則的高級視圖。例如,電子商務業(yè)務的數(shù)據(jù)模型將包含供應商、產(chǎn)品、客戶和銷售,業(yè)務規(guī)則是每個供應商需要提供至少一種產(chǎn)品。 概念模型沒有標準格式。重要的是,它可以幫助技術和非技術利益相關者就其數(shù)據(jù)項目的目的、范圍和設計達成一致。以下圖形都是概念數(shù)據(jù)模型的示例。
邏輯數(shù)據(jù)模型基于概念模型并定義項目的數(shù)據(jù)元素和關系,可以看到數(shù)據(jù)庫中特定實體的名稱以及它們的屬性。繼續(xù)使用電子商務示例:邏輯模型顯示產(chǎn)品是通過“產(chǎn)品 ID”標識的,具有描述、類別和單價等屬性。 數(shù)據(jù)架構師和業(yè)務分析師使用邏輯數(shù)據(jù)模型來規(guī)劃數(shù)據(jù)庫系統(tǒng)中的實施。以下是邏輯數(shù)據(jù)模型的示例。
物理數(shù)據(jù)模型變得技術化。數(shù)據(jù)庫分析師和開發(fā)人員使用它來設計數(shù)據(jù)庫和相關數(shù)據(jù)結構。該模型指定了將存儲的數(shù)據(jù)類型以及技術數(shù)據(jù)要求。 數(shù)據(jù)類型規(guī)范的例子是:一條數(shù)據(jù)是整數(shù)(不帶小數(shù)點的數(shù)字)還是浮點型(帶小數(shù)位的數(shù)字)。技術要求包括有關存儲需求、訪問速度和數(shù)據(jù)冗余的詳細信息——將一條數(shù)據(jù)存儲在多個位置以提高持久性并提高查詢性能。
在實踐中,只有非常大的項目,比如為供應鏈業(yè)務建模,才會從概念模型轉向邏輯模型再到物理模型。大多數(shù)其他項目跳過概念階段,將大部分時間花在邏輯建模上。一些團隊甚至同時涵蓋物理階段的元素,因為從事邏輯模型的人員也負責技術實施。 有許多不同的技術來設計和構建數(shù)據(jù)庫。應該探索這些技術,并在概念階段結束時確定最適合的技術。這些數(shù)據(jù)建模方法定義了數(shù)據(jù)庫的結構化方式,并與可用于管理數(shù)據(jù)項目的格式或技術類型密切相關。 在關系數(shù)據(jù)模型中,數(shù)據(jù)存儲在表中,其中特定元素鏈接到其他表中的信息。實體可以具有一對一、一對多或多對多的關系。 關系數(shù)據(jù)庫通常使用 SQL(結構化查詢語言)語言,用于訪問和管理數(shù)據(jù)。它們經(jīng)常用于CRM系統(tǒng)以及其他類型的交易處理。
實體-關系模型(有時稱為 ER 模型)類似于關系模型。它展示了系統(tǒng)中不同元素之間的關系,但不涉及技術細節(jié)??梢栽诟拍铍A段使用 ER 模型來協(xié)調技術和非技術利益相關者。 理解維度數(shù)據(jù)模型,可以想象一個立方體。立方體的每一面都代表嘗試捕獲的數(shù)據(jù)的一個方面。 例如,假設企業(yè)向不同的客戶群銷售多種產(chǎn)品,并且要評估一段時間內的銷售業(yè)績??梢詫⑵湔宫F(xiàn)為具有時間、產(chǎn)品和客戶細分維度的數(shù)據(jù)立方體。通過在立方體的軸上上下左右移動,可以在所有這些維度上進行比較。我們將在任何時間看到這些產(chǎn)品的銷售額如何相互比較以及不同的客戶群。
在概念階段使用立方體模型。這種多維數(shù)據(jù)集在邏輯階段最常見的表現(xiàn)之一是“星型模式”,如下圖所示。起初,它可能看起來像一個關系模型。盡管如此,星型模式還是不同的,因為它有一個連接到許多其他節(jié)點的中心節(jié)點。
在概念階段,大多數(shù)人在白板上繪制數(shù)據(jù)模型。這樣的草圖類似于圖模型。它由“節(jié)點”和邊組成——節(jié)點代表數(shù)據(jù)存儲的位置,邊代表節(jié)點之間的關系。這也是這種方法的主要優(yōu)點:“你在白板上畫的東西就是你存儲在數(shù)據(jù)庫中的東西?!?/section>
其他技術要求將概念階段的輸出轉換為邏輯和物理實現(xiàn)的不同格式,例如,從 ER 轉換為關系模型或從多維數(shù)據(jù)集模型轉換為星型模式。圖模型并非如此,可以使用 Neo4j 等技術直接實現(xiàn)它們,Neo4j 是一個原生圖形數(shù)據(jù)庫平臺。 數(shù)據(jù)模型是一種可視化的表示,它將抽象的想法轉化為技術實施計劃。它們有助于避免代價高昂的數(shù)據(jù)基礎架構拆除和重建,因為數(shù)據(jù)建模人員需要在創(chuàng)建數(shù)據(jù)庫和倉庫之前考慮他們需要的數(shù)據(jù)、數(shù)據(jù)關系、數(shù)據(jù)架構,甚至項目是否可行。 數(shù)據(jù)模型還有助于數(shù)據(jù)治理和法律合規(guī)性。它要求從項目一開始就設置標準,這樣團隊就不會遇到?jīng)_突的數(shù)據(jù)集,這些數(shù)據(jù)集需要在使用之前進行清理,或者更糟糕的是,根本無法使用。 數(shù)據(jù)模型和標準化有助于避免在整個組織中以近十種不同方式標記的注冊字段之類的情況。 它還有助于在建模時識別敏感信息(社會保險號、密碼、信用卡號),以便在開始構建之前讓安全和法律專家參與進來。 安全、準確和高質量的數(shù)據(jù)為組織中的各個團隊帶來了一系列現(xiàn)實的好處。產(chǎn)品團隊可以更快地迭代并構建身臨其境的用戶體驗。分析和商業(yè)智能團隊無需繁重的變通方法即可創(chuàng)建查詢。營銷團隊可以通過根據(jù)用戶行為和特征個性化消息傳遞來改進工作。